Selenium WebDriver(Python)API

1、
通过示例介绍Selenium-WebDriver
一个简单的入门方法就是这个例子,
它在Google上搜索术语“Cheese”,
然后将结果页面的标题输出到控制台。

java csharp python
from selenium import webdriver
from selenium.common.exceptions import TimeoutException
from selenium.webdriver.support.ui import WebDriverWait
# 可自从2.4.0
from selenium.webdriver.support import expected_conditions as EC
# 可自从2.26.0

driver = webdriver.Firefox()
# 创建Firefox的驱动的一个新实例

driver.get("https://www.google.com")
# 去谷歌主页

print driver.title
# 页面Ajaxy所以标题原来是这样:

inputElement = driver.find_element_by_name("q")
# 找到元素的name属性是Q(谷歌搜索框)

inputElement.send_keys("cheese!")
# 键入搜索

inputElement.submit()
# 提交表单(尽管谷歌自动搜索现在没有提交)

try:
    WebDriverWait(driver, 10).until(EC.title_contains("cheese!"))
    # 我们不得不等待页面刷新,最后一件事,似乎被更新的标题是

print driver.title
    # 您应该看到"cheese! - Google Search"

finally:
    driver.quit()

2、
抓取页面
您可能想要使用WebDriver做的第一件事是导航到一个页面。
正常的做法是调用“get”:

driver.get("https://www.google.com")

3、
查找UI元素(WebElements)
“Find”方法使用名为“By”的定位器或查询对象。
“By”策略列在下面。

By ID

如何找到如下所示的元素的示例:

<div id="coolestWidgetEvah">...</div>

element = driver.find_element_by_id("coolestWidgetEvah")

or

from selenium.webdriver.common.by import By
element = driver.find_element(by=By.ID, value="coolestWidgetEvah")

By Class Name

如何找到如下所示的元素的示例:

<div class="cheese"><span>Cheddar</span></div><div class="cheese"><span>Gouda</span></div>

cheeses = driver.find_elements_by_class_name("cheese")

or

from selenium.webdriver.common.by import By
cheeses = driver.find_elements(By.CLASS_NAME, "cheese")

By Tag Name

如何找到如下所示的元素的示例:

<iframe src="..."></iframe>

frame = driver.find_element_by_tag_name("iframe")

or

from selenium.webdriver.common.by import By
frame = driver.find_element(By.TAG_NAME, "iframe")

By Name

如何找到如下所示的元素的示例:

<input name="cheese" type="text"/>

cheese = driver.find_element_by_name("cheese")

or

from selenium.webdriver.common.by import By
cheese = driver.find_element(By.NAME, "cheese")

By Link Text

如何找到如下所示的元素的示例:

<a href="http://www.google.com/search?q=cheese">cheese</a>>

cheese = driver.find_element_by_link_text("cheese")

or

from selenium.webdriver.common.by import By
cheese = driver.find_element(By.LINK_TEXT, "cheese")

By Partial Link Text

如何找到如下所示的元素的示例:

<a href="http://www.google.com/search?q=cheese">search for cheese</a>>

cheese = driver.find_element_by_partial_link_text("cheese")

or

from selenium.webdriver.common.by import By
cheese = driver.find_element(By.PARTIAL_LINK_TEXT, "cheese")

By CSS

下面找到奶酪的例子:

<div id="food"><span class="dairy">milk</span><span class="dairy aged">cheese</span></div>

cheese = driver.find_element_by_css_selector("#food span.dairy.aged")

or

from selenium.webdriver.common.by import By
cheese = driver.find_element(By.CSS_SELECTOR, "#food span.dairy.aged")

By XPath

这是一个小抽象,所以对于下面的一段HTML:

<input type="text" name="example" />
<INPUT type="text" name="other" />

inputs = driver.find_elements_by_xpath("//input")

or

from selenium.webdriver.common.by import By
inputs = driver.find_elements(By.XPATH, "//input")

Using JavaScript

jQuery加载的页面上的简单示例:

element = driver.execute_script("return $(‘.cheese‘)[0]")

为页面上的每个标签查找所有输入元素:

labels = driver.find_elements_by_tag_name("label")
inputs = driver.execute_script(
    "var labels = arguments[0], inputs = []; for (var i=0; i < labels.length; i++){" +
    "inputs.push(document.getElementById(labels[i].getAttribute(‘for‘))); } return inputs;", labels)

原文地址:https://www.cnblogs.com/yjlch1016/p/8476628.html

时间: 2024-10-13 05:20:10

Selenium WebDriver(Python)API的相关文章

selenium + webdriver(python)(三)

本节重点: 简单对象的定位 -----自动化测试的核心 对象的定位应该是自动化测试的核心,要想操作一个对象,首先应该识别这个对象.一个对象就是一个人一样,他会有各种的特征(属性),如比我们可以通过一个人的身份证号,姓名,或者他住在哪个街道.楼层.门牌找到这个人. 那么一个对象也有类似的属性,我们可以通过这个属性找到这对象. 定位对象的目的一般有下面几种 · 操作对象 · 获得对象的属性,如获得测试对象的class属性,name属性等等 · 获得对象的text · 获得对象的数量 webdrive

selenium + webdriver(python)(Xpath)

http://www.w3school.com.cn/xpath/xpath_syntax.asp XPath 使用路径表达式来选取 XML 文档中的节点或节点集.节点是通过沿着路径 (path) 或者步 (steps) 来选取的. XML 实例文档 我们将在下面的例子中使用这个 XML 文档. <?xml version="1.0" encoding="ISO-8859-1"?> <bookstore> <book> <t

开源应用架构之?Selenium WebDriver(上)

前不久,InfoQ向大家推荐了几本有关 软件架构的新书,引起了国内读者的广泛兴趣.其中一本是< 开源应用架构(The Architecture of Open  Source  Applications)>, 来自知名开源项目的各位作者对软件的设计进行了说明.通过对这些成功的系统架构进行概览,让软件工程师可以彻底了解最佳实践和陷阱.InfoQ中文站响应 读者的需求,整理了该书有关知名开源软件架构的精彩内容,供国内开发社区借鉴.本期介绍的是著名浏览器自动化工具Selenium   WebDriv

自动化测试Selenium Webdriver (JAVA)学习小结

自动化测试--Selenium学习小结 一.自动化测试的概念及意义: 1.什么是自动化测试: 一般是指软件测试的自动化,软件测试就是在预设条件下运行系统或应用程序,评估运行结果,预先条件应包括正常条件和异常条件. 2.意义: 让测试更有效率,利用更多的空余时间,减少人力资源. 二.selenium工具 我用的是java语言,所以接下来的例子和方法都是基于java的. 1.环境配置 (1)Jdk的配置: 我用的是1.7的jdk,配置方法都一样,新建一个JAVA_HOME,把你装好的jdk的路径复制

Selenium Webdriver 学习总结-Selenium Grid &amp; Webdriver(九)

QQ群: 136924235 论坛 : http://bbs.shareku.com Google教程:https://code.google.com/p/selenium/wiki/Grid2 Hub / Node 系统要求:JDK.firefox.chrome.internetExplorer 所需工具:selenium-server-standalone-xxx.jar 下载地址:http://code.google.com/p/selenium/downloads/list Start

python selenium系列(四)元素等待

一 前言 在前面的selenium系列(二)元素定位方式和selenium系列(三)常用操作类型及方法两节中,已经介绍了web页面元素的识别定位.操作等技术,可能你会觉得掌握这两项技术就可以实施web自动化了,答案基本是这样的,毕竟元素定位和操作是核心技术.但是,在某些场景,脚本的运行并非预期那样,如,要操作的元素用常规方法无法识别.元素可以识别但在脚本运行时却未如期而至等.为了解决这些疑难杂症,接下来三节内容将会介绍处理这些问题的通用方法. 在本节,主要介绍元素等待的使用方法和场景,该方法是开

python selenium系列(三)常用操作类型及方法

一 前言 开展WEB UI自动化的核心思路,无非就是找到元素,然后操作元素这两个内容.在python selenium系列(二)元素定位方式一文中,已经介绍了如何找到元素这项技能,本文将介绍第二项内容,即如何操作已经找到的元素. 二 操作方法分类 总体来说,可以将操作大体分成四类,即浏览器操作.键盘操作.鼠标操作.js脚本. 1.  浏览器常用操作方法: 方法 描述 driver.maximize_window() 窗口最大化 driver.back() 页面返回 driver.forward(

MySQL通用批量写入工具(Python)

背景 平台目前的分析任务主要以Hive为主,分析后的结果存储在HDFS,用户通过REST API或者Rsync的方式获取分析结果,这样的方式带来以下几个问题: (1)任务执行结束时间未知,用户必须自行编写代码不断地通过REST API请求分析结果,直至获取到分析结果为止,其中还需要处理分析结果过大,转而通过Rsync方式获取: (2)受限于Hive SQL的表达能力,用户的计算逻辑无法完全表述,获取分析结果后需要再计算,然后入库: (3)基于(1).(2)的原因,用户编写大量复杂且冗余的代码处理

selenium Grid(一)

selenium grid Quick Start selenium-grid是用于设计帮助我们进行分布式测试的工具,其整个结构是由一个hub节点和若干个代理节点组成.hub用来管理各个代理节点的注册和状态信息,并且接受远程客户端代码的请求调用,然后把请求的命令再转发给代理节点来执行. 1.启动Selenium-Server 1)下载 selenium-server-standalone-*.jar,地址:http://selenium-release.storage.googleapis.co