概述
话不多说,先附上练习的所有代码链接:
link.
文章目录
- 引言.什么是自动化测试?
- 一.selenium定义
- 二.使用selenium IDE录制脚本
- 三.元素的定位方式
- 1.id--->find_element_by_id()
- 2.name--->find_element_by_name()
- 3.class name--->find_element_by_class_name()
- 4.link text--->find_element_by_link_text()
- 5.partial link text--->find_element_by_partial_link_text()
- 6.tag name--->find_element_by_tag_name()
- 7.xpath--->find_element_by_xpath()
- 8.css selector--->find_element_by_css_selector()
- 四.操作测试对象
- 五.键盘事件
- 1.键盘全选删除
- 2.键盘回车
- 3.键盘输入
- 4.键盘按键用法
- 5.键盘组合键用法
- 六.鼠标事件
- 1.鼠标单击
- 2.鼠标双击
- 3.鼠标右击
- 4.鼠标拖拽
- 七.打印信息
- 八.浏览器的操作
- 1.浏览器最大化
- 2.设置浏览器的宽和高
- 3.浏览器界面刷新
- 4.控制浏览器的滚动条
- 5.浏览器界面截屏
- 九.其它函数
- 1.submit()提交表单
- 2.text 获取元素文本
- 3.添加等待
- 4.智能等待
引言.什么是自动化测试?
自动化测试,顾名思义就是利用一些工具或编程语言,通过录制或编程的方法,设定特定的测试场景,模拟用户业务使用项目的一个流程,以此自动寻找缺陷(自动寻找缺陷是有局限性的)。目前业内较为流行的商用自动化测试工具代表有 HP 公司的 Unified Function Testing 与 IBM 公司的 RFT ,开源自动化测试工具则以 Selenium、Jmeter、Appium 为代表。
Selenium,业内流行的开源Web自动化测试工具,直接运行在浏览器中,就像真正的用户在操作一样。支持的浏览器包括 IE、Firefox、 Chrome 等 。
自动化测试的优点是:能够快速回归、脚本重用,从而替代人的重复活动。回归测试阶段,可利用自动化测试工具进行,无须大量测试工程师手动重复执行测试用例,极大的提高了工作效率。
自动化测试的缺点是:它们只能检查一些比较主要的问题,如崩溃、死机,但是却无法发现新的错误(人具有主观能动性,机器肯定代替不了人)。另外,自动化测试编写测试脚本工作量也很大,有时候该工作量甚至超过了手动测试的时间。
自动化测试不仅仅运用在系统测试层面,在单元测试、集成测试阶段同样可以使用自动化测试方法进行测试。此章节所述自动化主要是指 UI 层面的自动化测试。
一.selenium定义
Selenium 是 ThroughtWorks 公司一个强大的开源 Web 功能测试工具系列,支持多平台、多浏览器、多语言去实现自动化测试,Selenium2 将浏览器原生的 API 封装成 WebDriver API ,可以直接操作浏览器页面里的元素,甚至操作浏览器本身(截屏,窗口大小,启动,关闭,安装插件,配置证书之类的),所以就像真正的用户在操作浏览器一样。
支持多种开发语言:ruby,python,java,perl,c# 等,同时 Selenium 测试直接自动运行在浏览器中,就像真正的用户在手工操作一样。支持的浏览器包括 IE, Chrome , firefox 等。
Selenium 已经从之前的 1.0(RC) 进化到了现在的 Selenium2 ( Selenium1+ 现在WebDriver)。
Selenium IDE 也将支持 WebDriver API ,包括将录制生成的测试
用例导出为 WebDriver 所支持的各种编程语言( Ruby、Python、C# 和 Java)
Selenium 实际上不是一个测试工具,而是一个工具集,其主要由三个核心组件构成: SeleniumIDE、Selenium RC (Remote Control )及Selenium Grid.
- Selenium IDE: Selenium 开发测试脚本的集成开发环境,是 FireFox 的 一个插件,可以录制/回放用户的操作,生成测试用例(一个脚本),运行单个测试用例或测试用例集。
- Selenium Remote Control ( RC远端控制平台 ) :支持多种平台(Windows、Linux) 和多种浏览器(IE、FireFox、Opera、Safari), 可以用多种语言(Java, Ruby, Python, Perl, PHP,C#) 编写测试用例。Selenium 为这些语言提供了不同的 API 及开发库,便于自动编译环境集成,从而构建高效的自动化测试框架。
- Selenium Grid :允许 Selenium-RC 针对规模庞大的测试用例集或者需要在不同环境中运行的测试用例集进行扩展。这样,许多的测试集可以并行运行,从而提高测试效率(有点像多线程)。
Selenium 的历史:
- Selenium 自 2004 年诞生以来,经历了三个版本的变化: Selenium 1.,Selenium 2 及 Selenium 3。Selenium 2 又称为 WebDriver ,WebDriver 对浏览器的支持需要对应框架开发工程师做对应的开发,Selenium 必须操作真实浏览器,但是 WebDriver 可以用 HTML Unit Driver 来模拟浏览器,在内存中执行用例,更加轻便。
- Selenium 1 中测试工程师使用 Selenium IDE 录制开发对应的测试脚本
,但在 WebDriver 中,仅需引入对应的 API,即可利用 JAVA 或 Python 等语言开发工具进行测试脚本开发编写,因此 Selenium IDE 渐渐被放弃。
利用 Selenium 进行 Web 自动化测试时,可采用 Python 语言, Python 常用的开发平台为 PyCharm。PyCharm 是由 JetBrains 打造的一款 Python IDE,功能齐全,编译方便,目前软件测试行业应用其做 Python 脚本开发较多。
二.使用selenium IDE录制脚本
link
三.元素的定位方式
先引入一个简单的代码:
# coding = utf-8
from selenium import webdriver
import time
browser = webdriver.Firefox()
time.sleep(3)
browser.get("http://www.baidu.com")
time.sleep(3)
browser.find_element_by_id("kw").send_keys("selenium")
time.sleep(3)
browser.find_element_by_id("su").click()
browser.quit()
脚本解析:
-
coding = utf-8
可加可不加,开发人员喜欢加一下,防止乱码。 -
from selenium import webdriver
要想使用 selenium 的 webdriver 里的函数,首先要把 webdriver 包导进来 -
browser = webdriver.Firefox()
我们需要操控哪个浏览器呢?Chrome ,当然也可以换成 Ie 或 Firefox。browser 可以随便取,但后面要用它操纵各种函数执行。 -
browser.find_element_by_id(“kw”).send_keys(“selenium”)
一个控件有若干属性 id 、name、(也可以用其它方式定位),百度输入框的 id 叫 kw ,我要在输入框里输入 selenium 。 -
browser.find_element_by_id(“su”).click()
搜索的按钮的 id 叫 su ,我需要点一下按钮( click() )。 -
browser.quit()
退出并关闭窗口的每一个相关的驱动程序。 -
browser.close()
关闭当前窗口。
注意:close 方法关闭当前的浏览器窗口,quit 方法不仅关闭当前窗口,还会彻底的退出 webdriver ,释放与 driver server 之间的连接。所以简单来说 quit 是更加彻底的 close ,quit 会更好的释放资源。
元素的定位:
我们在做 WEB 自动化时,最根本的就是操作页面上的元素,首先我们要能找到这些元素,然后才能操作这些元素。工具或代码无法像我们测试人员一样用肉眼来分辨页面上的元素。那么我们怎么来定位他们呢?在学习元素定位之前,我们最好能懂一点 html 的知识。
查看页面元素:用谷歌浏览器打开百度首页,点击右上角>更多工具>开发者工具,就可以看到整个页面的 html 文档内容
点击框中左上角的箭头图标,移动鼠标到百度搜索框,就可以自动定位到百度搜索框的HTML代码了,查看到搜索框的属性,我们可以看到搜索框有id,name,class等属性。
总结:元素对象的定位应该是自动化测试的核心,要想操作一个对象,首先应该识别这个对象。一个对象就是一个人一样,他会有各种的特征(属性),如我们可以通过一个人的身份证号找到这个人。
那么一个对象也有它自己的属性,我们可以通过这个属性找到这对象。
注意:不管用那种方式,必须保证页面上该属性的唯一性。
webdriver 提供了一系列的元素对象的定位方法,常用的有以下几种(以定位输入框为例):
1.id—>find_element_by_id()
id 和 name 是我们最最常用的定位方式,因为大多数控件都有这两个属性,而且在对控件的 id 和 name 命名时一般使其有意义也会取不同的名字。通过这两个属性使我们找一个页面上的属性变得相当容易。
# coding : utf-8
from selenium import webdriver # 导入 webdriver ,相当于加载了 webdriver 里面所有的方法
import time # 导入 time 包
driver = webdriver.Chrome() # 创建 chrome 对象
driver.get("https://www.baidu.com/")
time.sleep(2) # 网页打开后等待停止2秒
driver.find_element_by_id("kw").send_keys("你好世界") # 在输入框输入你好世界
time.sleep(5)
driver.quit() # 关闭 chrome 对象
2.name—>find_element_by_name()
# coding : utf-8
from selenium import webdriver # 导入 webdriver ,相当于加载了 webdriver 里面所有的方法
import time # 导入 time 包
driver = webdriver.Chrome() # 创建 chrome 对象
driver.get("https://www.baidu.com/")
time.sleep(2) # 网页打开后等待停止2秒
driver.find_element_by_name("wd").send_keys("你好世界") # 在输入框输入你好世界
time.sleep(5)
driver.quit() # 关闭 chrome 对象
© 2020 GitHub, Inc.
3.class name—>find_element_by_class_name()
# coding : utf-8
from selenium import webdriver # 导入 webdriver ,相当于加载了 webdriver 里面所有的方法
import time # 导入 time 包
driver = webdriver.Chrome() # 创建 chrome 对象
driver.get("https://mail.qqqq.com/")
# 假设这个一个登录界面,账号,密码,再次输入密码框的class_name都相同,且为class="inputstyle"
time.sleep(2) # 网页打开后等待停止2秒
# 因为三个输入框的class_name都相同,所以定位就会出现错误,可以这样改:
driver.find_element_by_class_name("inputstyle").send_keys("123456") # 在账号输入框输入123456
driver.find_elements_by_class_name("inputstyle")[1].send_keys("123456789") # 在密码输入框输入123456789
driver.find_elements_by_class_name("inputstyle")[2].send_keys("123456789") # 在再次输入密码输入框输入123456789
time.sleep(5)
# 需要明白的是element方法返回一个元素,elements方法返回一个List列表
driver.quit() # 关闭 chrome 对象
4.link text—>find_element_by_link_text()
此种方法是专门用来定位文本链接的,比如百度首页右上角有“新闻”,“hao123”,“地图”等链接。我们可以通过link来定位这个位置:
# coding : utf-8
from selenium import webdriver # 导入 webdriver ,相当于加载了 webdriver 里面所有的方法
import time # 导入 time 包
driver = webdriver.Chrome() # 创建 chrome 对象
driver.get("https://www.baidu.com/")
time.sleep(2) # 网页打开后等待停止2秒
driver.find_element_by_link_text("hao123").click() # 查找页面内容为hao123的,然后并点击
time.sleep(5)
driver.quit() # 关闭 chrome 对象
5.partial link text—>find_element_by_partial_link_text()
通过部分链接定位,这个有时候也会用到(有时候一个超链接的文本很长很长,我们如果全部输入,既麻烦,又显得代码很不美观,这时候我们就可以只截取一部分字符串,用这种方法模糊匹配了。):
# coding : utf-8
from selenium import webdriver # 导入 webdriver ,相当于加载了 webdriver 里面所有的方法
import time # 导入 time 包
driver = webdriver.Chrome() # 创建 chrome 对象
driver.get("https://www.baidu.com/")
time.sleep(2) # 网页打开后等待停止2秒
driver.find_element_by_partial_link_text("hao").click() # 查找页面部分内容为hao的,然后并点击
time.sleep(5)
driver.quit() # 关闭 chrome 对象
6.tag name—>find_element_by_tag_name()
从上面的百度输入框的属性信息中,我们看到,不单单只有 id 和 name 两个属性, 还有 tag name(标签名),不过标签名常常定位不准确,因为一个页面常常有很多同名的标签。如果懂 HTML 知识,我们就知道 HTML 是通过tag 来定义功能的,比如 input 是输入,table 是表格,等等…。每个元素其实就是一个 tag ,一个 tag 往往用来定义一类功能,我们查看百度首页的 html 代码,可以看到有很多 div,input,a 等 tag ,所以很难通过 tag 去区分不同的元素。基本上在我们工作中用不到这种定义方法,仅了解就行。一般采用该方法运行时必定报错。
input 就是一个标签的名字,可以通过
find_element_by_tag_name("input")
函数来定位。
7.xpath—>find_element_by_xpath()
前面介绍的几种定位方法都是在理想状态下,有一定使用范围的,那就是:在当前页面中,每个元素都有一个唯一的 id 或 name 或 class 或 超链接文本 的属性,那么我们就可以通过这个唯一的属性值来定位他们。
但是在实际工作中并非有这么美好,有时候我们要定位的元素并没有 id,name,class 属性,或者多个元素的这些属性值都相同,又或者刷新页面,这些属性值都会变化(比如网易邮箱的 id 每一次刷新都会出现一个新值)。那么这个时候我们就只能通过 xpath 或者 CSS 来定位了。
# coding : utf-8
from selenium import webdriver # 导入 webdriver ,相当于加载了 webdriver 里面所有的方法
import time # 导入 time 包
driver = webdriver.Chrome() # 创建 chrome 对象
driver.get("https://www.baidu.com/")
time.sleep(2) # 网页打开后等待停止2秒
driver.find_element_by_xpath("//*[@id='kw']").send_keys("你好世界") # 在输入框输入你好世界
driver.find_element_by_xpath("//*[@id="su"]").click() # 点击百度一下 (注意转义)
time.sleep(5)
driver.quit() # 关闭 chrome 对象
8.css selector—>find_element_by_css_selector()
# coding = utf-8
import time
from selenium import webdriver
# 启动浏览器
driver = webdriver.Chrome() # 创建 chrome 对象
driver.get("https://www.baidu.com/")
time.sleep(2) # 网页打开后等待停止2秒
# 通过 CSS 定位搜索框,并输入 selenium
driver.find_element_by_css_selector('#kw').send_keys('selenium')
time.sleep(2)
driver.quit()
四.操作测试对象
前面讲到了不少知识都是定位元素,定位只是第一步,定位之后需要对这个元素进行操作。鼠标点击呢还是键盘输入,这要取决于我们定位的是按钮还输入框。
一般来说,webdriver 中比较常用的操作对象的方法有下面几个:
- click() 点击对象
- send_keys() 在对象上模拟按键输入内容
- clear ()清除对象的内容,如果可以的话
- submit() 清除对象的内容,如果可以的话
- text ()用于获取元素的文本信息
五.键盘事件
1.键盘全选删除
# coding : utf-8
from selenium import webdriver # 导入 webdriver ,相当于加载了 webdriver 里面所有的方法
import time # 导入 time 包
from selenium.webdriver.common.keys import Keys
driver = webdriver.Chrome() # 创建 chrome 对象
driver.get("https://www.baidu.com/")
time.sleep(2) # 网页打开后等待停止2秒
shuru = driver.find_element_by_id("kw")
shuru.send_keys("你好世界")
time.sleep(2)
shuru.send_keys(Keys.CONTROL,'a') # 全选
time.sleep(2)
shuru.send_keys(Keys.BACKSPACE) # 剪切
time.sleep(2)
shuru.send_keys("哈哈哈")
time.sleep(2)
driver.quit() # 关闭 chrome 对象
2.键盘回车
# coding : utf-8
from selenium import webdriver # 导入 webdriver ,相当于加载了 webdriver 里面所有的方法
import time # 导入 time 包
from selenium.webdriver.common.keys import Keys
driver = webdriver.Chrome() # 创建 chrome 对象
driver.get("https://www.baidu.com/")
time.sleep(2) # 网页打开后等待停止2秒
shuru = driver.find_element_by_id("kw")
shuru.send_keys("") # 输入空内容
time.sleep(2)
baiduyixia = driver.find_element_by_xpath("//*[@id="su"]")
baiduyixia.send_keys(Keys.ENTER) # 键盘输入回车
time.sleep(2)
driver.quit() # 关闭 chrome 对象
3.键盘输入
# coding : utf-8
from selenium import webdriver # 导入 webdriver ,相当于加载了 webdriver 里面所有的方法
import time # 导入 time 包
driver = webdriver.Chrome() # 创建 chrome 对象
driver.get("https://www.baidu.com/")
time.sleep(2) # 网页打开后等待停止2秒
shuru = driver.find_element_by_id("kw")
shuru.send_keys("你好世界")
time.sleep(3)
driver.quit() # 关闭 chrome 对象
4.键盘按键用法
#coding=utf-8
from selenium import webdriver
from selenium.webdriver.common.keys import Keys #需要引入keys 包
import os,time
driver = webdriver.Chrome()
driver.get("http://demo.zentao.net/user-login-Lw==.html")
time.sleep(3)
driver.maximize_window() # 浏览器全屏显示
driver.find_element_by_id("account").clear() # 清空账号输入框
time.sleep(3)
driver.find_element_by_id("account").send_keys("demo") # 在账号输入框输入 demo
time.sleep(3)
# tab 的定位相当于清除了密码框的默认提示信息,等同上面的clear()
driver.find_element_by_id("account").send_keys(Keys.TAB) # 跳转到密码输入框
time.sleep(3)
driver.find_element_by_name("password").send_keys(Keys.ENTER) # 回车代替 enter登录 按钮
'''
# 也可定位登陆按钮,通过enter(回车)代替click()
driver.find_element_by_id("login").send_keys(Keys.ENTER)
'''
time.sleep(3)
driver.quit()
总结:要想调用键盘按键操作需要引入 keys 包:
from selenium.webdriver.common.keys import Keys
通过send_keys()调用按键:
send_keys(Keys.TAB)
send_keys(Keys.ENTER) # 回车
5.键盘组合键用法
#coding=utf-8
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
import time
driver = webdriver.Chrome()
driver.get("http://www.baidu.com")
driver.find_element_by_id("kw").send_keys("selenium") #输入框输入内容
time.sleep(3)
driver.find_element_by_id("kw").send_keys(Keys.CONTROL,'a') #ctrl+a 全选输入框内容
time.sleep(3)
driver.find_element_by_id("kw").send_keys(Keys.CONTROL,'x') #ctrl+x 剪切输入框内容
time.sleep(3)
driver.find_element_by_id("kw").send_keys("webdriver") #输入框重新输入内容,搜索
driver.find_element_by_id("su").click()
time.sleep(3)
driver.quit()
六.鼠标事件
ActionChains 类
- context_click() 右击
- double_click() 双击
- drag_and_drop() 拖动
- move_to_element() 移动
1.鼠标单击
# coding : utf-8
from selenium import webdriver # 导入 webdriver ,相当于加载了 webdriver 里面所有的方法
import time # 导入 time 包
driver = webdriver.Chrome() # 创建 chrome 对象
driver.get("https://www.baidu.com/")
time.sleep(2) # 网页打开后等待停止2秒
danji = driver.find_element_by_link_text("hao123") # 查找页面内容为hao123的句柄
danji.click() # 鼠标单击
time.sleep(3)
driver.quit() # 关闭 chrome 对象
2.鼠标双击
# coding : utf-8
from selenium import webdriver # 导入 webdriver ,相当于加载了 webdriver 里面所有的方法
import time # 导入 time 包
from selenium.webdriver.common.action_chains import ActionChains
driver = webdriver.Chrome() # 创建 chrome 对象
driver.get("https://www.baidu.com/")
time.sleep(2) # 网页打开后等待停止2秒
shuangji = driver.find_element_by_link_text("hao123") # 查找页面内容为hao123的句柄
ActionChains(driver).move_to_element(shuangji).double_click().perform()
time.sleep(3)
driver.quit() # 关闭 chrome 对象
3.鼠标右击
# coding : utf-8
from selenium import webdriver # 导入 webdriver ,相当于加载了 webdriver 里面所有的方法
import time # 导入 time 包
from selenium.webdriver.common.action_chains import ActionChains
driver = webdriver.Chrome() # 创建 chrome 对象
driver.get("https://www.baidu.com/")
time.sleep(2) # 网页打开后等待停止2秒
youji = driver.find_element_by_link_text("hao123") # 查找页面内容为hao123的句柄
ActionChains(driver).move_to_element(youji).context_click().perform()
time.sleep(3)
driver.quit() # 关闭 chrome 对象
4.鼠标拖拽
# coding : utf-8
from selenium import webdriver # 导入 webdriver ,相当于加载了 webdriver 里面所有的方法
import time # 导入 time 包
from selenium.webdriver.common.action_chains import ActionChains
driver = webdriver.Chrome() # 创建 chrome 对象
driver.get("https://www.baidu.com/")
time.sleep(2) # 网页打开后等待停止2秒
a = driver.find_element_by_link_text("hao123") # 查找页面内容为hao123的句柄
b = driver.find_element_by_link_text("地图")
ActionChains(driver).drag_and_drop(a,b).perform()
time.sleep(3)
driver.quit() # 关闭 chrome 对象
七.打印信息
打印title和url:
#coding = utf-8
from selenium import webdriver
driver = webdriver.Chrome()
driver.get('http://www.baidu.com')
print driver.title # 把页面title 打印出来
print driver.current_url # 打印url
driver.quit()
打印结果:
百度一下,你就知道
http://www.baidu.com/
八.浏览器的操作
我们知道调用启动的浏览器不是全屏的,这样不会影响脚本的执行,但是有时候会影响我们“观看”脚本的执行。
1.浏览器最大化
#coding=utf-8
from selenium import webdriver
import time
browser = webdriver.Chrome()
browser.get("http://www.baidu.com")
print "浏览器最大化"
browser.maximize_window() # 将浏览器最大化显示
time.sleep(2)
browser.find_element_by_id("kw").send_keys("selenium")
browser.find_element_by_id("su").click()
time.sleep(3)
browser.quit()
2.设置浏览器的宽和高
# coding : utf-8
from selenium import webdriver # 导入 webdriver ,相当于加载了 webdriver 里面所有的方法
import time # 导入 time 包
driver = webdriver.Chrome() # 创建 chrome 对象
driver.get("https://www.csdn.net/")
time.sleep(3) # 网页打开后等待停止3秒
driver.set_window_size(800,600) # 固定大小显示
driver.refresh() # 刷新页面
time.sleep(5) # 目的是为了查看效果
driver.quit() # 关闭 chrome 对象
3.浏览器界面刷新
# coding : utf-8
from selenium import webdriver # 导入 webdriver ,相当于加载了 webdriver 里面所有的方法
import time # 导入 time 包
driver = webdriver.Chrome() # 创建 chrome 对象
driver.get("https://www.csdn.net/")
time.sleep(5) # 网页打开后等待停止5秒
driver.refresh() # 刷新页面
time.sleep(5) # 目的是为了查看效果
driver.quit() # 关闭 chrome 对象
4.控制浏览器的滚动条
# coding : utf-8
from selenium import webdriver # 导入 webdriver ,相当于加载了 webdriver 里面所有的方法
import time # 导入 time 包
driver = webdriver.Chrome() # 创建 chrome 对象
driver.get("https://www.csdn.net/")
time.sleep(5) # 网页打开后等待停止5秒
driver.refresh() # 刷新页面
time.sleep(5) # 目的是为了查看效果
driver.quit() # 关闭 chrome 对象
© 2020 GitHub, Inc.
5.浏览器界面截屏
# coding : utf-8
from selenium import webdriver # 导入 webdriver ,相当于加载了 webdriver 里面所有的方法
import time # 导入 time 包
driver = webdriver.Chrome() # 创建 chrome 对象
driver.get("https://www.csdn.net/")
time.sleep(3) # 网页打开后等待停止3秒
driver.set_window_size(800,600) # 固定大小显示
driver.get_screenshot_as_file(".\jieping.png")
driver.refresh() # 刷新页面
time.sleep(5) # 目的是为了查看效果
driver.quit() # 关闭 chrome 对象
九.其它函数
1.submit()提交表单
把“百度一下”的操作从click 换成submit 可以达到相同的效果
driver.find_element_by_id("su").submit()
2.text 获取元素文本
text 用于获取元素的文本信息
#coding=utf-8
from selenium import webdriver
import time
driver = webdriver.Chrome()
driver.get("http://www.baidu.com")
time.sleep(2)
#id = cp 元素的文本信息
data=driver.find_element_by_id("cp").text
print data #打印信息
time.sleep(3)
driver.quit()
输出:©2020 Baidu 使用百度前必读 意见反馈 京ICP证030173号
3.添加等待
添加休眠非常简单,我们需要引入 time 包,就可以在脚本中自由的添加休眠时间了
import time
time.sleep(3)
4.智能等待
#coding : utf-8
from selenium import webdriver # 导入 webdriver ,相当于加载了 webdriver 里面所有的方法
import time # 导入 time 包
driver = webdriver.Chrome() # 创建 chrome 对象
driver.get("https://www.csdn.net/")
driver.implicitly_wait(5) # 智能等待5秒
driver.find_element_by_link_text("学院").click()
driver.quit() # 关闭 chrome 对象
最后
以上就是忧心麦片为你收集整理的史上最全!Selenium 录制脚本+八种元素定位方式+具体代码演示引言.什么是自动化测试?一.selenium定义二.使用selenium IDE录制脚本三.元素的定位方式四.操作测试对象五.键盘事件六.鼠标事件七.打印信息八.浏览器的操作九.其它函数的全部内容,希望文章能够帮你解决史上最全!Selenium 录制脚本+八种元素定位方式+具体代码演示引言.什么是自动化测试?一.selenium定义二.使用selenium IDE录制脚本三.元素的定位方式四.操作测试对象五.键盘事件六.鼠标事件七.打印信息八.浏览器的操作九.其它函数所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复