免费的seo网站,如何在搜索引擎做网站,品牌型网站制,微信公众号推广网站目录 webdriver API 脚本实例 元素的定位 1. 通过id定位#xff1a; 2. 通过name方式定位 3. 通过tag name#xff08;标签名#xff09;定位 4. 通过class name #xff08;类名#xff09;方式定位 5. 通过CSS 方式定位 6. 通过xpath方式定位 7. link text定位 8. Parti… 目录 webdriver API 脚本实例 元素的定位 1. 通过id定位 2. 通过name方式定位 3. 通过tag name标签名定位 4. 通过class name 类名方式定位 5. 通过CSS 方式定位 6. 通过xpath方式定位 7. link text定位 8. Partial link text 定位 操作测试对象 鼠标点击与键盘输入 submit 提交表单 text 获取元素文本 上一篇主要讲解了自动化测试的环境。最后用 IDE 生成了一个样例。这节课将详细的介绍 webdriver 的常用的API♀️ seleniumpython环境没有配置好的可以先看我上两篇配置环境噢。 selenium环境配置 自动化测试一配置selenium环境带图文防止踩坑-CSDN博客 python环境配置 自动化测试前奏Python环境配置教程带图文-CSDN博客 webdriver API 脚本实例 一个简单自动化脚本的构成 # coding utf-8
from selenium import webdriver
from selenium.webdriver.common.by import By
import time
driver webdriver.Chrome()
driver.get(http://www.baidu.com)
time.sleep(3)
driver.find_element(By.ID,kw).send_keys(软件测试)
time.sleep(3)
driver.find_element(By.ID,su).click()
time.sleep(3)
driver.quit()脚本解析 coding utf-8 防止乱码在编辑器里面可以不用加因为编辑器默认的就是 UTF-8 模式。 from selenium import webdriver 导入 webdriver 工具包这样就可以使用里面的 API driver webdriver.Chrome() 获得被控制浏览器的驱动这里是获得Chrome 的当然还可以获得其他 浏览器不过要想使这一段代码有效必须安装相应的浏览器驱动。 driver.get(http://www.baidu.com) 打开百度这个网址。 driver.find_element(By.ID,kw).send_keys(软件测试) 根据id寻找kw这个元素在百度里面这个kw的元素是搜索框然后send_keys是输入指令输入“软件测试” driver.find_element(By.ID,su).click() 这一段是根据id找到su这个按钮click代表点击 driver.quit() 关闭浏览器 总结上面代码的逻辑是在百度中搜索“软件测试”并点击搜索按钮 driver.close() 上面一行代码也能够关闭窗口和quit的区别是 close 方法关闭当前的浏览器窗口 quit 方法不仅关闭窗口还会彻底的退出 webdriver 释放与 driverserver之间的连接。所以简单来说 quit 是更加彻底的 close quit 会更好的释放资源。 元素的定位 对象的定位应该是自动化测试的核心要想操作一个对象首先应该识别这个对象。一个对象就是一个人一样他会有各种的特征属性如比我们可以通过一个人的身份证号姓名或者他住在哪个街道、楼层、门牌找到这个人。 那么一个对象也有类似的属性我们可以通过这些属性找到这对象。 注意不管用那种方式必须保证页面上该属性的唯一性 webdriver 提供了一系列的对象定位方法常用的有以下几种 id
name
class name
link text
partial link text
tag name
xpath
css selector 我们可以看到一个百度的输入框可以用这么多种方式去定位。 input typetext classs_ipt namewd idkw
maxlength100 autocompleteoff 1. 通过id定位 id是页面元素的属性我们最常用元素定位方式但是不是所有的元素都有 id 的。如果一个元素有 id 属 性那么一般在整个页面是唯一的。所以我们一般可以用id 来唯一的定位到这个元素。 通过前端工具例如 Chrome 浏览器的 F12 找到了百度输入框的属性信息如下 input typetext classs_ipt namewd idkw
maxlength100 autocompleteoff 属性 id”kw” 通过下面这行代码就能定位到输入框。 driver.find_element(By.ID,kw).send_keys(软件测试) 2. 通过name方式定位 如果这个元素有 name 并且元素的 name 命名在整个页面是唯一的那么我们可以用 name 来定位这个元素。 用上面百度输入框的例子其中元素的属性 name”wd” 通过driver.find_element(By.NAME,wd)函数同样也可以定位到百度输入框 driver.find_element(By.NAME,wd).send_keys(软件测试) 3. 通过tag name标签名定位 从上面的百度输入框的属性信息中我们看到不单单只有 id 和 name 两个属性 比如 class 和 tag name(标签名 input 就是一个标签的名字而classs_ipt是类名。 在这里要注意的是不是所有的元素用 tag name或者 class name来定位元素首先要保证该元素的这两种属性在页面上是唯一的才能够精准定位。 driver.find_element(By.TAG_NAME,input).send_keys(软件测试) 注意上面这个可能执行不成功因为标签名可能不唯一♀️ 4. 通过class name 类名方式定位 driver.find_element(By.CLASS_NAME,s_ipt).send_keys(软件测试) 5. 通过CSS 方式定位 CSS(Cascading Style Sheets) 是一种语言它被用来描述 HTML 和 XML 文档的表现。 CSS 使用选择器来为页面元素绑定属性。这些选择器可以被 selenium 用作另外的定位策略。 CSS 的比较灵活可以选择控件的任意属性上面的例子中driver.find_element(By.CSS_SELECTOR,#kw)选择取百度输入框的id 属性来定义 CSS 的获取可以用 chrome 的 F12 开发者模式中 Element- 右键 -copy-copy selector 来获取 driver.find_element(By.CSS_SELECTOR,#kw).send_keys(软件测试) 6. 通过xpath方式定位 什么是XPathhttp://www.w3.org/TR/xpath/ XPath 基础教程 http://www.w3schools.com/xpath/default.asp XPath 是一种在 XML 文档中定位元素的语言。因为 HTML 可以看做 XML 的一种实现所以 selenium 用 户可是使用这种强大语言在web 应用中定位元素。 XPath 扩展了上面 id 和 name 定位方式提供了很多种可能性。 XPATH 的获取可以用 chrome 的 F12 开发者模式中 Element- 右键 -copy-copy xpath 来获取 driver.find_element(By.XPATH,//*[idkw]).send_keys(软件测试)7. link text定位 有时候不是一个输入框也不是一个按钮而是一个文字链接我们可以通过链接内容也就是 link text 来定位。 需要注意的是链接内容必须这个页面唯一否则会报错。 #codingutf-8
from selenium import webdriver
from selenium.webdriver.common.by import Bybrowser webdriver.Chrome()
browser.get(http://www.baidu.com)
browser.find_element(By.LINK_TEXT,hao123).click()
browser.quit() 8. Partial link text 定位 通过部分链接定位这个有时候也会用到拿上面的例子我可以只用链接的一部分文字进行匹配 #codingutf-8
from selenium import webdriver
from selenium.webdriver.common.by import Bybrowser webdriver.Chrome()
browser.get(http://www.baidu.com)
browser.find_element(By.PARTIAL_LINK_TEXT,hao123).click()
browser.quit() 操作测试对象 前面讲到了不少知识都是定位元素定位只是第一步定位之后需要对这个元素进行操作。是鼠标点击还是键盘输入或者清除元素的内容或者提交表单等。这个取决于定位元素需要进行的下一步操作。 webdriver 中比较常用的操作对象的方法有下面几个 1. click 点击对象 2. send_keys 在对象上模拟按键输入 3. clear 清除对象输入的文本内容 4. submit 提交 5. text 用于获取元素的文本信息 鼠标点击与键盘输入
#codingutf-8
from selenium import webdriver
import timefrom selenium.webdriver.common.by import Bydriver webdriver.Chrome()
driver.get(http://www.baidu.com)
time.sleep(2)
driver.find_element(By.ID,kw).send_keys(test)
time.sleep(2)
driver.find_element(By.ID,kw).clear()
driver.find_element(By.ID,kw).send_keys(selenium)
time.sleep(2)
#通过submit() 来操作
driver.find_element(By.ID,su).submit()
time.sleep(3)
driver.quit() click() 用于点击一个按钮。 clear() 用于清除输入框的内容比如百度输入框里默认有个 “ 请输入关键字 ” 的信息再比如我们的登录框一般默认会有“ 账号 ”“ 密码 ” 这样的默认信息。 clear 可以帮助我们清除这些信息。 submit 提交表单 打开百度搜索页面按钮 “ 百度一下 ” 元素的类型 type“submit” 所以把 “ 百度一下 ” 的操作从 click 换成 submit 可以达到相同的效果 driver.find_element(By.ID,su).submit() text 获取元素文本 text 用于获取元素的文本信息 #codingutf-8
from selenium import webdriver
import timefrom selenium.webdriver.common.by import Bydriver webdriver.Chrome()
driver.get(http://www.baidu.com)
time.sleep(2)
#id cp 元素的文本信息
datadriver.find_element(By.ID,bottom_layer).text
print(data) #打印信息
time.sleep(3)
driver.quit() 输出 ©2018 Baidu 使用百度前必读 意见反馈 京ICP证030173号 本节就到这里啦你们的支持就是我前进的动力希望大家多多支持噢♀️♂️♀️♂️