web自动化测试
web自动化测试
Tim8709
这个作者很懒,什么都没留下…
展开
-
selenium 使用cookies
自动化测试经常会遇到扫码登录的场景,我们可以使用cookie实现不用扫码直接登录。实现思路先手动扫码登录 ,将登录后的cookies保存到本地文件中执行自动化用例时,从本地文件中获取cookies,遍历cookies,将失效时间expires从cookies中剔除示例import jsonfrom selenium import webdriverclass TestCookies: def setup(self): self.driver = webdrive原创 2021-03-19 16:59:41 · 299 阅读 · 0 评论 -
selenium 复用已打开的浏览器
命令行开启chrome debug模式:chrome -remote-debugging-port=9222注:开启调试模式前,需关闭所有浏览器代码page/base_page.pyfrom selenium import webdriverfrom selenium.webdriver.remote.webdriver import WebDriverclass BasePage: _base_url = "" def __init__(self, driver: Web原创 2021-03-19 14:41:15 · 566 阅读 · 0 评论 -
pageobject设计模式
PageObject发展历史2013年,Martin Fowler,https://martinfowler.com/bliki/PageObject.html2015年,Selenium,https://github.com/SeleniumHQ/selenium/wiki/PageObjectsPageObject核心思想把操作细节封装成方法,对外只提供操作方法,不提供细节只封装重要操作细节,不封装每个操作细节导航到另一个页面,导航方法应返回另一个页面对象(A页面对象调用链接方法跳转到原创 2021-03-19 11:23:37 · 86 阅读 · 2 评论 -
selenium 弹框处理机制
页面操作中有时会遇到alert、confirm、prompt弹框,可以使用switch_to.alert()方法定位;然后使用text、accept、dismiss、send_keys等方法进行操作操作alert常用方法switch_to.alert():获取当前页面上的警告框text:返回alert/confirm/prompt中文字信息accept():接受现有警告框dismiss():解散现有警告框send_keys(“警告”):发送文本至警告框示例from time import s原创 2021-03-15 15:03:11 · 125 阅读 · 0 评论 -
selenium 文件上传
input标签可以直接用send_keys上传文件示例from time import sleepfrom selenium import webdriverclass TestUpFile(): def setup(self): self.driver = webdriver.Chrome() self.driver.implicitly_wait(5) self.driver.maximize_window() # def te原创 2021-03-12 11:43:35 · 100 阅读 · 0 评论 -
selenium js处理时间控件
大部分的时间控件属性是readonly,自动化测试中要给时间控件赋值,先要用js取消时间控件的readonly属性,再给value赋值,最后用webdriver对js进行处理示例from time import sleepfrom selenium import webdriverclass TestJS(): def setup(self): self.driver = webdriver.Chrome() self.driver.implicitly_w原创 2021-03-11 18:24:26 · 295 阅读 · 0 评论 -
selenium 执行JavaScript脚本
selenium 能执行js,这使得selenium拥有更为强大的能力。直接使用js操作页面,能够解决很多click()不生效的问题;还可以使用js操作页面滚动底部、顶部,处理富文本、时间空间等。selenium调用jsselenium内置execute_script()方法,可通过此方法调用jsdriver.execute_script('window.alert("selenium弹框")')driver.exccute_script('a = document.getElementById("原创 2021-03-10 18:06:22 · 898 阅读 · 0 评论 -
selenium 多浏览器操作
多浏览器兼容性测试,通过传入的参数不同,唤起不同的浏览器示例from selenium import webdriverimport osclass TestBrowsers: browser = "chrome" def setup(self): # browser = os.getenv("browser") if self.browser == "chrome": self.driver = webdriver.Chr原创 2021-03-10 17:08:32 · 262 阅读 · 0 评论 -
selenium frame处理
frame介绍frame是HTML中的框架,可以使同一个浏览器显示多个页面。frame示例1<!DOCTYPE html><html><head> <meta charset="utf-8"> <title>菜鸟教程(runoob.com)</title> </head><body><iframe src="demo_iframe.htm" marginheight="50">原创 2021-03-10 16:35:04 · 178 阅读 · 0 评论 -
selenium web多窗口处理
多窗口处理点击某些链接,会新打开一个窗口,若想在新窗口上操作,就得先切换窗口。句柄是获取窗口的唯一标识,所以只需切换句柄,就可以切换窗口了。多窗口处理流程先获取当前的窗口句柄(driver.current_window_handle)再获取多有的窗口句柄(driver.window_handles)判断是否是想要操作的窗口,若是则对窗口操作;若不是则跳转(driver.switch_to_window)示例from selenium import webdriverfrom time i原创 2021-03-08 15:30:14 · 476 阅读 · 0 评论 -
selenium web表单操作
表单定义表单是使用<form>定义的区域,例如<form><input /></form>;表单元素是允许用户在表单中(如文本域、下拉列表、单选框、复选框等)输入信息的元素示例from time import sleepfrom selenium import webdriverclass TestForm(): def setup(self): self.driver = webdriver.Chrome()原创 2021-01-22 21:04:14 · 211 阅读 · 1 评论 -
selenium web控件交互(TouchAction)
官方文档:https://selenium-python.readthedocs.io/api.html#module-selenium.webdriver.common.touch_actionsTouchActionActionChains是模拟鼠标操作,执行PC端的鼠标点击、双击、右键、拖拽等事件;TouchAction是模拟人的手指在屏幕上操作,执行PC和移动端的点击、滑动、拖拽、多点触控等多种手势操作序号方法说明1tap单击2double_tap双击原创 2021-01-06 13:37:05 · 586 阅读 · 3 评论 -
selenium web控件交互(ActionChains)
官方文档:https://selenium-python.readthedocs.io/api.htmlActionChains执行PC端的鼠标点击、双击、右键、拖拽等事件调用ActionChains的方法时,不会立即执行,而是将所有的操作,按顺序存放到一个队列中,当调用perform()方法时,队列中的事件会依次执行链式写法:ActionChains(driver).move_to_element(element).click(element).perform()分步写法:actions原创 2021-01-04 11:58:47 · 232 阅读 · 0 评论 -
selenium web元素定位
xpath定位定义XML Path Language,XML路径语言,用来确定XML文档中某部分位置的语言。XPath基于XML的树状结构,提供在数据结构树中找寻节点的能力。XPath定位比较慢,原因是XPath是从头到尾遍历。语法表达式语法/bookstore/book[1]选取属于 bookstore 子元素的第一个 book 元素。/bookstore/book[last()]选取属于 bookstore 子元素的最后一个 book 元素。/bookstor原创 2020-12-09 18:42:52 · 100 阅读 · 0 评论 -
selenium的3种等待
selenium有3种等待,即直接等待、隐式等待、显式等待。直接等待直接等待即强制等待,强制线程休眠一段时间(此种等待尽量不要用)示例:time.sleep(3)隐式等待作用于全局的find_element;设置一个等待时间,默认每隔0.5秒轮询查找元素是否出现,如果在设置的等待时间内元素仍未出现,就抛出异常示例:self.driver.implicitly_wait(3)显示等待在代码中定义等待条件,当条件发生时才继续执行代码程序默认每隔0.5秒进行一次条件判断,如果条件成立,则执行下原创 2020-12-03 17:57:43 · 328 阅读 · 0 评论 -
selenium介绍与安装
官网:https://www.selenium.devSelenium的组成Selenium Webdriver:提供接口驱动浏览器Selenium IDE:chrome、firefox的插件,可录制浏览器上的操作Selenium Grid:支持分布式,同时在多个浏览器上执行selenium运行原理我们用python、java等语言编写脚本,通过selenium将脚本发送给浏览器的驱动程序Driver,不同的浏览器有不同的Driver,Driver和浏览器进行交互。安装selenium(py原创 2020-11-11 14:29:02 · 226 阅读 · 1 评论