Selenium
阿刁阿
如切如磋 如琢如磨
展开
-
selenium webdriver 原理概述
背景虽然掌握selenium webdriver提供的各种方法,就可以做web的UI自动化,但是本着知其然,也要知其所以然的态度,也为了提升自己。了解下selenium webdriver的原理是必要的。搞清楚webdriver是怎么连接和操作浏览器,对于使用webdriver的各种方法,也会更加明悟。况且源码就在本地,花些精力读一下源码,不费事。selenium概述selenium经过不断...原创 2020-03-22 22:42:37 · 1157 阅读 · 0 评论 -
python3 selenium 浏览器窗口处理
背景selenium webdriver提供了几个处理浏览器窗口的方法,包含设置和获取窗口大小,位置。以下为总结。webdriver提供的方法:# 获取浏览器窗口大小,返回值是一个包含长和宽属性的字典。get_window_size(windowHandle='current')# 设置浏览器窗口大小set_window_size(self, width, height, windo...原创 2020-03-08 11:45:13 · 536 阅读 · 0 评论 -
pyhton3 selenium 窗口截图
背景selenium webdriver提供了当前窗口截图的方法,以下为总结。提供的方法概述:# 参数filename为想要保存图片的路径,可以是相对路径和绝对路径。但是文件名需要以png扩展名结尾# 截图窗口图像并保存为png格式的图片save_screenshot(filename)# 不要被方法名迷惑,这是以二进制数据格式保存当前窗口截图get_screenshot_as_p...原创 2020-03-08 10:57:40 · 588 阅读 · 0 评论 -
python3 web自动化 pywinauto实现 win控件处理上传文件
背景web中有上传下载的操作,都会出现属于windows控件的对话框。web自动化中,下载操作可以通过设置浏览下载模式来避免接触windows控件,但是上传操作需要接触并处理windows控件的对话框的自动化操作。例如下图,邮箱上传附件:解决方法本文借助pywinauto框架实现在上传附件过程中windows控件的自动化操作。主要用到该框架的以下方法:# 导入pywinauto模块f...原创 2020-03-07 18:55:01 · 3178 阅读 · 2 评论 -
python3 web自动化 定位悬浮框,当Paused in debugger失效时
背景之前掌握了对于悬浮框的定位方法,即通过在Sources里按F8或者Ctrl+\,使得Paused in debugger悬浮框不会随着鼠标移出消失。但是在工作中,发现对于有的悬浮框,这种方法失效了。具体的表现情况是:当悬浮框出现时,F8或者Ctrl+\,不会出现Paused in debugger。因此在鼠标移出时,悬浮框则又消失了。解决思路:此时连目标元素的面都见不着,就不好定位。所以...原创 2020-03-07 15:59:10 · 544 阅读 · 0 评论 -
python3 web自动化 定位悬浮框
背景在web中,悬浮框的特点是当检测鼠标进入时,发生弹出悬浮框事件,当鼠标退出时,悬浮框在页面上消失。此时,若依然通过定位其他元素的方式,不能顺利的定位到悬浮框内的元素。悬浮框示例:上图中被标识的就是悬浮框,当鼠标移开时,就会消失,导致不能直接定位里面的元素。解决方案:该解决方案的关键点是保证鼠标退出时,悬浮框不会消失。这样我们就可以用定位其他元素的方式去定位悬浮框内的元素了。如何做到...原创 2020-03-07 15:32:40 · 2267 阅读 · 1 评论 -
python3 web自动化 selenium处理select标签形式的下拉框
背景web中的下拉框有的是使用select标签创建,有的不是。对于非select标签的下拉框以及其元素选项,可通过与其他元素相同的方法去定位。对于select标签的下拉框,selenium webdriver提供了Select类来处理,比较方便易用.Select类导入方式和常用 方法# 导入方式from selenium.webdriver.support.select import Se...原创 2020-03-07 11:20:25 · 1546 阅读 · 0 评论 -
Python3 web自动化 selenium处理警告框
背景:在web自动化测试时,会有在某个操作后出现警告弹窗,如下图:webdriver提供的解决方法:对于警告框的处理,selenium webdriver提供相应的方法:# webdriver处理目标切换到警告框,并返回一个alert对象alert = webdriver.switch_to.alert()# 返回警告框中的提示信息alert.text# 接受警告框,相当于在...原创 2020-03-01 21:42:19 · 579 阅读 · 0 评论 -
web自动化selenium 多窗口切换
背景web自动化测试中,有时候点击一个按钮或者一个链接,会弹出新的窗口。如果自动化测试需要处理新窗口,需要将webdriver切换到新打开的窗口。解决方法:webdriver提供方法完成切换窗口的操作:# 返回当前窗口的句柄webdriver.current_window_handle# 返回当前会话中所有窗口的句柄webdriver.window_handles# 切换到指定...原创 2020-02-29 21:12:13 · 711 阅读 · 0 评论 -
python selenium 表单切换
背景在web自动化设计时,如果目标定位元素是frame/iframe表单内的元素,在当前页面中使用定位方法是无法定位到该元素的。因为WebDriver只能对当前页面中元素进行定位,frame表单内嵌页面,可以理解为相对当前页面的另一个页面了。所以无法完成定位。比如上图中,126邮箱登录界面,与登录的元素正常方法下是无法定位到的。会抛出如下异常:selenium.common.excepti...原创 2020-02-29 18:46:36 · 828 阅读 · 0 评论 -
web自动化 selenium webdriver的等待方式概述
背景自动化测试系统运行中,会由于网络等原因导致定位元素超时失败,从而造成测试结果的不准确性。需要合理的等待机制,保障自动化测试系统的稳定性和健壮性。笔者将在参考如下博文的基础上,再表述自己的理解,完成这篇关于web自动化中等待机制的总结。参考:https://blog.csdn.net/Wuli_SmBug/article/details/82053372三种等待方式强制等待隐式等待...原创 2020-02-29 17:13:59 · 199 阅读 · 0 评论 -
selenuim之ActionChains类--模拟鼠标操作方法
首先通过源代码了解ActionChains类提供的模拟鼠标操作方法源码路径: D:\Python3.7\Lib\site-packages\selenium\webdriver\common\action_chains.py源码:# Licensed to the Software Freedom Conservancy (SFC) under one# or more contribut...原创 2020-02-23 20:16:51 · 699 阅读 · 0 评论 -
Selenium WebDriver提供的常用的方法概述
背景WebDriver提供的方法,一些是我们常用的,可以模拟使用浏览器时的大部分操作。from selenium import webdriverfrom time import sleepfrom selenium.webdriver.common.keys import Keyschrome_driver = r'D:\Python3.7\Lib\site-packages\sel...原创 2020-02-23 12:52:05 · 238 阅读 · 0 评论 -
Python3+selenium总结之定位示例
背景以简单的示例描述selenium webdriver提供的定位方法,显得更形象。对自身也算是夯实基础。id定位上图标识部分为目标对象,通过id对其定位name定位如上图,通过对象的name属性定位输入框,但是该输入框对象的name属性非唯一。这里可以使用定位一组元素的方法find_elements_by_name()来定位。如下图。结果如下图class定位通过cla...原创 2020-02-22 20:02:54 · 545 阅读 · 0 评论 -
Python3+selenium总结之定位概述
背景ui自动化中,无论是B/S自动化,还是C/S自动化,,定位和识别元素都是自动化设计的基石。若不能准确定位识别目标对象,自动化将无法进行。在此总结下目前已知的web自动化框架selenium中定位元素方法。若有遗漏,还请不吝赐教。Selenium WebDriver中提供的定位元素方法1. 常见的8种定位方法: #id定位find_element_by_id( id ) #n...原创 2020-02-22 11:39:01 · 402 阅读 · 0 评论