Selenium
小樱桃smile
这个作者很懒,什么都没留下…
展开
-
Selenium工作原理
selenium的原理涉及到3个部分,分别是浏览器driver: 一般我们都会下载driverclient: 也就是我们写的代码client其实并不知道浏览器是怎么工作的,但是driver知道,在selenium启动以后,driver其实充当了服务器的角色,跟client和浏览器通信,client根据webdriver协议发送请求给driver,driver解析请求,并在浏览器上执行相应的操作,并把执行结果返回给client。这就是selenium工作的大致原理。...原创 2020-12-13 17:10:49 · 2039 阅读 · 0 评论 -
Selenium关闭浏览器
使用quit()方法,其含义为退出相关的驱动程序和关闭所有窗口。除此之外,WebDriver还提供了close()方法,用来关闭当前窗口。例多窗口的处理,在用例执行的过程中打开了多个窗口,我们想要关闭其中的某个窗口,这时就要用到close()方法进行关闭了。close() 关闭单个窗口quit() 关闭所有窗口...原创 2020-12-07 23:01:04 · 4541 阅读 · 0 评论 -
Web页面窗口截图
自动化用例是由程序去执行的,因此有时候打印的错误信息并不十分明确。如果在脚本执行出错的时候能对当前窗口截图保存,那么通过图片就可以非常直观地看出出错的原因。WebDriver提供了截图函数get_screenshot_as_file()来截取当前窗口。from selenium import webdriverfrom time import sleepdriver = webdriver.Firefox()driver.get(“http://www.baidu.com”)driver.find原创 2020-12-07 22:58:58 · 869 阅读 · 0 评论 -
Cookie操作
有时候我们需要验证浏览器中cookie是否正确,因为基于真实cookie的测试是无法通过白盒和集成测试进行的。WebDriver提供了操作Cookie的相关方法,可以读取、添加和删除cookie信息。获取的cookie如下:[{‘name’: ‘YOUDAO_MOBILE_ACCESS_TYPE’, ‘value’: ‘1’, ‘path’: ‘/’, ‘domain’: ‘.youdao.com’, ‘secure’: False, ‘httpOnly’: False, ‘expiry’: 1638原创 2020-12-07 22:27:12 · 219 阅读 · 0 评论 -
Web文件上传
对于通过input标签实现的上传功能,可以将其看作是一个输入框,即通过send_keys()指定本地文件路径的方式实现文件上传。创建upfile.html文件,代码如下:接下来通过send_keys()方法来实现文件上传。from selenium import webdriverimport osdriver = webdriver.Firefox()file_path = ‘file:///’ + os.path.abspath(‘upfile.html’)driver.get(file原创 2020-12-07 22:10:16 · 151 阅读 · 0 评论 -
Web下拉框选择
有时我们会碰到下拉框,WebDriver提供了Select类来处理下拉框。 如百度搜索设置的下拉框,如下图:from selenium.webdriver.support.ui import Select#通过index进行选择Select(driver.find_element_by_name(“form:j_idt163”)).select_by_index(1)#通过value进行选择Select(driver.find_element_by_name(“form:j_idt163”)).原创 2020-12-07 21:10:07 · 2091 阅读 · 0 评论 -
Web页面警告框处理
在WebDriver中处理JavaScript所生成的alert、confirm以及prompt十分简单,具体做法是使用 switch_to.alert 方法定位到 alert/confirm/prompt,然后使用text/accept/dismiss/ send_keys等方法进行操作。text:返回 alert/confirm/prompt 中的文字信息。accept():接受现有警告框。dismiss():解散现有警告框。send_keys(keysToSend):发送文本至警告框。keys原创 2020-12-06 23:45:38 · 1117 阅读 · 0 评论 -
Web多窗口切换
在页面操作过程中有时候点击某个链接会弹出新的窗口,这时就需要主机切换到新打开的窗口上进行操作。WebDriver提供了switch_to.window()方法,可以实现在不同的窗口之间切换。 以百度首页和百度注册页为例,在两个窗口之间的切换如下图。from selenium import webdriverimport timedriver = webdriver.Firefox()driver.implicitly_wait(10)driver.get(“http://www.baidu.com原创 2020-12-06 22:56:33 · 393 阅读 · 0 评论 -
Web页面多表单切换
在Web应用中经常会遇到frame/iframe表单嵌套页面的应用,WebDriver只能在一个页面上对元素识别与定位,对于frame/iframe表单内嵌页面上的元素无法直接定位。这时就需要通过switch_to.frame()方法将当前定位的主体切换为frame/iframe表单的内嵌页面中。如下:126邮箱登录框的结构大概是这样子的,想要操作登录框必须要先切换到iframe表单...原创 2020-12-06 21:51:01 · 467 阅读 · 0 评论 -
Selenium定位一组元素
WebDriver还提供了8种用于定位一组元素的方法。find_elements_by_id()find_elements_by_name()find_elements_by_class_name()find_elements_by_tag_name()find_elements_by_link_text()find_elements_by_partial_link_text()find_elements_by_xpath()find_elements_by_css_selector()定原创 2020-12-06 13:51:52 · 217 阅读 · 0 评论 -
Selenium设置三种元素等待
WebDriver提供了两种类型的等待:显式等待和隐式等待。另外一种就是from time import sleep 中的强制等待强制等待from selenium import webdriverfrom time import sleepdriver = webdriver.Chrome()try:driver.get(“http://www.baidu.com”)# 强制等待3Ssleep(3)element = driver.find_element_by_id(“kw22”).原创 2020-12-06 11:30:32 · 159 阅读 · 0 评论 -
Selenium获取页面简单断言信息
不管是在做功能测试还是自动化测试,最后一步需要拿实际结果与预期进行比较。这个比较的称之为断言。我们通常可以通过获取title 、URL和text等信息进行断言。text它用于获取标签对之间的文本信息。 下面同样以百度为例,介绍如何获取这些信息。from selenium import webdriverfrom time import sleepdriver = webdriver.Firefox()driver.get(“https://www.baidu.com”)print(‘Before原创 2020-12-06 09:39:34 · 679 阅读 · 1 评论 -
Selenium键盘事件
Keys()类提供了键盘上几乎所有按键的方法。 前面了解到, send_keys()方法可以用来模拟键盘输入, 除此 之外, 我们还可以用它来输入键盘上的按键, 甚至是组合键, 如 Ctrl+A、 Ctrl+C 等。from selenium import webdriver#引入 Keys 模块from selenium.webdriver.common.keys import Keysdriver = webdriver.Chrome()#访问百度首页driver.get(“http://w原创 2020-12-06 09:22:48 · 448 阅读 · 0 评论 -
Web页面元素的定位
selenium定位方法Selenium提供了8种定位方式。idnameclass nametag namelink textpartial link textxpathcss selector这8种定位方式在Python selenium中所对应的方法为:find_element_by_id()find_element_by_name()find_element_by_class_name()find_element_by_tag_name()find_element_by_原创 2020-12-04 21:17:23 · 488 阅读 · 0 评论