![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
python+selenium
小苗12377
记录学习中遇到的知识点
共勉
展开
-
PO模型测试示例的优化版本
测试数据的分离引入ddt优化执行效率:setUpClass和tearDownClass(每条用例直接互不影响的前提才能使用)元素定位分离:元素定位类型和表达式用元组来管理.代码实现:页面代码:测试数据:定位代码:测试用例代码:...原创 2020-07-03 11:06:05 · 302 阅读 · 0 评论 -
PO模型测试优化过程
自动化测试登录页面,登陆成功和登录失败2种情况PO模型:测试用例和元素定位分离login.py:index.pytest_login.py为了好管理数据,我们要实现数据分离,将测试数据存放在Python文件中,方便管理,需要使用的时候导入调用异常处理用户名的时候可以看出来,当用户名输入不一样时候,只是提示信息发生变化,对于这种情况可以利用ddt来调用数据测试数据:common_data.pylogin_data.py页面元素代码:log原创 2020-07-03 11:06:02 · 364 阅读 · 0 评论 -
selenium操作只读属性
12306首页日期选择,只读,设置日期在console里面调试成功方法1:readonly设为false方法2:readonly删除selenium实现:原创 2020-07-01 14:07:44 · 579 阅读 · 0 评论 -
selenium控制浏览器滚动条(javaScript操作)
有时候 web 页面上的元素并非直接可见的,就算把浏览器最大化,我们依然需要拖动滚动条才能看到 想要操作的元素,这个时候就要控制页面滚动条的拖动,但滚动条并非页面上的元素,可以借助 JavaScript 是来完成操作。 一般用到操作滚动条的会两个场景: 注册时的法律条文的阅读,判断用户是否阅读完成的标准是:滚动条是否拉到最下方。 要操作的页面元素不在视觉范围,无法进行...原创 2020-07-01 10:53:30 · 458 阅读 · 0 评论 -
selenium上传文件
文件上传操作也比较常见功能之一,上传功能操作 webdriver 并没有提供对应的方法,关键上传文 件的思路。上传过程一般要打开一个系统的 window 窗口,从窗口选择本地文件添加。所以,一般会卡在如何操 作本地 window 窗口。其实,上传本地文件没我们想的那么复杂;只要定位上传按钮,通 send_keys 添加 本地文件路径就可以了。绝对路径和相对路径都可以,关键是上传的文件存在。下面...原创 2019-08-27 13:54:48 · 170 阅读 · 0 评论 -
selenium处理下拉框
浏览器打开下拉框的代码,如下:脚本实现选择10.69这个选项:实现如下:需要说明的是在实际的 web 测试时,会发现各种类型的下拉框,并非我们我们上面所介绍的传统的下 拉框。如有些下拉框一般的处理是两次点击,第一点击弹出下拉框,第二次点击操作元 素。当然,也有些下拉框是鼠标移上去直接弹出的,那么我们可以使用 move_to_element()进行操作。...原创 2019-08-27 13:24:20 · 454 阅读 · 0 评论 -
selenium之元素定位方法
1.id定位2.link text 与 partial link text 定位3.css定位4.XPath 定位XPath 是一种在 XML 文档中定位元素的语言。因为 HTML 可以看做 XML 的一种实现,所以 selenium 用户可是使用这种强大语言在 web 应用中定位元素。如下的代码,定位最后一个元素:相对路径定位:find_ele...原创 2020-06-29 14:59:15 · 627 阅读 · 0 评论 -
selenium之alert/confirm/prompt 处理
webdriver 中处理 JavaScript 所生成的 alert、confirm 以及 prompt 是很简单的。具体思路是使用 switch_to.alert()方法定位到 alert/confirm/prompt。然后使用 text/accept/dismiss/send_keys 按需进行操做。text 返回 alert/confirm/prompt 中的文字信息。ale...原创 2019-08-14 13:51:25 · 372 阅读 · 0 评论 -
selenium 打印信息
当我们要设计功能测试用例时,一般会有预期结果,通常我们可以通过获得页面的 title 、URL 地址,页面上的标识性信息(如,登录成功的“欢迎,xxx” 信息)来判断用例执行成功。方法:title返回当前页面的标题current_url获取当前加载页面的 URL示例:结果:...原创 2019-08-23 16:20:46 · 1554 阅读 · 0 评论 -
selenium 之WebElement接口常用方法
webdriver 中比较常用WebElement接口常用方法: clear 清除元素的内容,如果可以的话 send_keys 在元素上模拟按键输入 click 单击元素 submit 提交表单 size 返回元素的尺寸 text 获取元素的文本 get_attribute(name)获得属性值 is_displa...原创 2019-08-23 14:55:42 · 1087 阅读 · 0 评论 -
selenium 设置等待时间
sleep():设置固定休眠时间。python的time包提供了休眠方法sleep() ,导入time包后就可以使用sleep() 进行脚本的执行过程进行休眠。implicitly_wait():是 webdirver 提供的一个超时等待。隐的等待一个元素被发现,或一个命令完成。 如果超出了设置时间的则抛出异常。WebDriverWait():同样也是 webdirver 提供的方法。在设...原创 2019-08-26 10:23:23 · 1337 阅读 · 0 评论 -
selenium定位一组对象
WebElement 接口同样提供了定位一组元素的方法 find_elements。定位一组对象一般用于以下场景:1.批量操作对象,比如将页面上所有的checkbox都勾上2.先获取一组对象,再在这组对象中过滤出需要具体定位的一些对象。比如定位出页面上所有的 checkbox,然后选择最后一个。有一个html文件:checkbox.html,浏览器打开显示如下:通过脚本来单击...原创 2019-08-26 13:24:32 · 173 阅读 · 0 评论 -
selenium层级定位
实际的项目测试中,经常会有这样的需求:页面上有很多个属性基本相同的元素 ,现在需要具体 定位到其中的一个。由于属性基本相当,所以在定位的时候会有些麻烦,这时候就需要用到层级定位。先 定位父元素,然后再通过父元素定位子孙元素。有一段代码保存为 level_locate.html,通过浏览器打开将看到以下页面:具体思路是:先点击显示出 1 个下拉菜单,然后再定位到该下拉菜单所在的 ul,再...原创 2019-08-26 13:53:58 · 1928 阅读 · 0 评论 -
selenium定位 frame 中的对象(iframe切换)
在 web 应用中经常会出现 frame 嵌套的应用,假设页面上有 A、B 两个 frame,其中 B 在 A 内,那么定位 B 中的内容则需要先到 A,然后再到 B。switch_to.frame 方法可以把当前定位的主体切换了 frame 里。怎么理解这句话呢?我们可以从 frame 的实质去理解。frame 中实际上是嵌入了另一个页面,而 webdriver 每次只能在一个页面识别,因此...原创 2019-08-26 15:01:00 · 426 阅读 · 0 评论 -
selenium处理对话框
以百度登录对话框为例,下面通过脚本对百度进行登录操作:脚本如下:注意:这里圈出来之前写成了:element = wb.find_element_by_id("TANGRAM__PSP_10__footerULoginBtn")一直报错定位不到元素,一直以为是写的有问题,查阅资料发现可能是元素加载未完成,尝试加了等待时间,问题解决...原创 2019-08-26 17:08:34 · 931 阅读 · 3 评论 -
selenium 浏览器多窗口处理(窗口切换)
webdriver 提供了相关相方法可以很轻松的在多个窗口之间切换并操作不同窗口上的元素。要想在多个窗口之间切换,首先要获得每一个窗口的唯一标识符号(句柄)。通过获得的句柄来区别分不同的窗口,从而对不同窗口上的元素进行操作。示例:打开hao123网站,再打开新窗口苏宁抢购执行结果:在本例中所有用到的新方法:current_window_handle获得当前窗口...原创 2019-08-27 09:42:06 · 1828 阅读 · 0 评论 -
selenium鼠标键盘事件
参照:https://blog.csdn.net/qq_39620483/article/details/84728329https://selenium-python-zh.readthedocs.io/en/latest/api.html导入包:from selenium.webdriver.common.action_chains import ActionChainsA...原创 2019-08-14 13:51:46 · 133 阅读 · 0 评论