Selenium Python 综合教程

按主题探索文章、教程与工程实践。

21 篇内容

2017

常见问题

官方解释。 简单来说,profile保存了 书签 记住的password 其他信息,比如cookie webidrver启动浏览器的时候会产生临时的profile,这也是为什么每次浏览器启动以后我们都要重新登录系统的原因,profile重置了,登录态也就没保存下来了。 我们在使用selenium做测试的时候可以指定使用1个已经存在的profile,从而实现一 …

1 分钟阅读

选读:Selenium的发展史

Jason Huggins在2004年发起了Selenium项目,当时身处ThoughtWorks的他,为了不想让自己的时间浪费在无聊的重复性工作中,幸运的是,所有被测试的浏览器都支持Javascript。Jason和他所在的团队采用Javascript编写一种测试工具来验证浏览器页面的行为;这个JavaScript类库就是Selenium core,同时也 …

1 分钟阅读

(一)安装selenium

打开 Python官网,找到“Download”, 在其下拉菜单中选择自己的平台(Windows/Mac),一般的Linux平台已经自带的Python,所以不需要安装,通过打开“终端” ,输入“python”命令来验证。 如果你是第一次接触Python,一定会迷惑Python为什么会提供Python2.x 和 Python3.x两个版本?那么,直接使 …

1 分钟阅读

(二)selenium3 浏览器驱动

当selenium升级到3.0之后,对不同的浏览器驱动进行了规范。如果想使用selenium驱动不同的浏览器,必须单独下载并设置不同的浏览器驱动。 各浏览器下载地址: Firefox浏览器驱动:geckodriver Chrome浏览器驱动:chromedriver , taobao备用地址 IE浏览器驱动:IEDriverServer Edge浏览器驱 …

1 分钟阅读

(三)selenium元素定位

Selenium提供了8种定位方式。 id name class name tag name link text partial link text xpath css selector 这8种定位方式在Python selenium中所对应的方法为: find_element_by_id() find_element_by_name() …

1 分钟阅读

(四)控制浏览器操作

有时候我们希望能以某种浏览器尺寸打开,让访问的页面在这种尺寸下运行。例如可以将浏览器设置成移动端大小(480* 800),然后访问移动站点,对其样式进行评估;WebDriver提供了set_window_size()方法来设置浏览器的大小。 在PC端执行自动化测试脚本大多的情况下是希望浏览器在全屏幕模式下执行,那么可以使用maximize_window()方 …

1 分钟阅读

(五)WebDriver常用方法

前面我们已经学习了定位元素, 定位只是第一步, 定位之后需要对这个元素进行操作, 或单击(按钮) 或输入(输入框) , 下面就来认识 WebDriver 中最常用的几个方法: clear(): 清除文本。 send_keys (value): 模拟按键输入。 click(): 单击元素。 submit() submit()方法用于提交表单。 例如, 在搜索框 …

1 分钟阅读

(六)鼠标事件

在 WebDriver 中, 将这些关于鼠标操作的方法封装在 ActionChains 类提供。 ActionChains 类提供了鼠标操作的常用方法: perform(): 执行所有 ActionChains 中存储的行为; context_click(): 右击; double_click(): 双击; drag_and_drop(): 拖动; …

1 分钟阅读

(七)键盘事件

Keys()类提供了键盘上几乎所有按键的方法。 前面了解到, send_keys()方法可以用来模拟键盘输入, 除此 之外, 我们还可以用它来输入键盘上的按键, 甚至是组合键, 如 Ctrl+A、 Ctrl+C 等。 需要说明的是, 上面的脚本没有什么实际意义, 仅向我们展示模拟键盘各种按键与组合键的用法。 from …

1 分钟阅读

(八)获取断言信息

不管是在做功能测试还是自动化测试,最后一步需要拿实际结果与预期进行比较。这个比较的称之为__断言__。 我们通常可以通过获取title 、URL和text等信息进行断言。text方法在前面已经讲过,它用于获取标签对之间的文本信息。 下面同样以百度为例,介绍如何获取这些信息。 脚本运行结果如下: title:用于获得当前页面的标题。 current_url:用 …

1 分钟阅读

(九)设置元素等待

WebDriver提供了两种类型的等待:__显式等待__和__隐式等待__。 显式等待使WebdDriver等待某个条件成立时继续执行,否则在达到最大时长时抛出超时异常(TimeoutException)。 WebDriverWait类是由WebDirver 提供的等待方法。在设置时间内,默认每隔一段时间检测一次当前页面元素是否存在,如果超过设置时间检测不到 …

1 分钟阅读

(十)定位一组元素

WebDriver还提供了8种用于定位一组元素的方法。 定位一组元素的方法与定位单个元素的方法类似,唯一的区别是在单词element后面多了一个s表示复数。 接下来通过例子演示定位一组元素的使用: 程序运行结果:

1 分钟阅读

(十一)多表单切换

在Web应用中经常会遇到frame/iframe表单嵌套页面的应用,WebDriver只能在一个页面上对元素识别与定位,对于frame/iframe表单内嵌页面上的元素无法直接定位。这时就需要通过switch_to.frame()方法将当前定位的主体切换为frame/iframe表单的内嵌页面中。 126邮箱登录框的结构大概是这样子的,想要操作登录框必须要先 …

1 分钟阅读

(十二)多窗口切换

在页面操作过程中有时候点击某个链接会弹出新的窗口,这时就需要主机切换到新打开的窗口上进行操作。WebDriver提供了switch_to.window()方法,可以实现在不同的窗口之间切换。 以百度首页和百度注册页为例,在两个窗口之间的切换如下图。 在本例中所涉及的新方法如下: current_window_handle:获得当前窗口句柄。 …

1 分钟阅读

(十三)警告框处理

在WebDriver中处理JavaScript所生成的alert、confirm以及prompt十分简单,具体做法是使用 switch_to.alert 方法定位到 alert/confirm/prompt,然后使用text/accept/dismiss/ send_keys等方法进行操作。 text:返回 alert/confirm/prompt 中的文字 …

1 分钟阅读

(十四)下拉框选择

有时我们会碰到下拉框,WebDriver提供了Select类来处理下拉框。 如百度搜索设置的下拉框,如下图: Select类用于定位select标签。 select_by_value() 方法用于定位下接选项中的value值。

1 分钟阅读

(十五)文件上传

对于通过input标签实现的上传功能,可以将其看作是一个输入框,即通过send_keys()指定本地文件路径的方式实现文件上传。 创建upfile.html文件,代码如下: 通过浏览器打开upfile.html文件,功能如下图。 接下来通过send_keys()方法来实现文件上传。

1 分钟阅读

(十六)cookie操作

有时候我们需要验证浏览器中cookie是否正确,因为基于真实cookie的测试是无法通过白盒和集成测试进行的。WebDriver提供了操作Cookie的相关方法,可以读取、添加和删除cookie信息。 WebDriver操作cookie的方法: get_cookies(): 获得所有cookie信息。 get_cookie(name): 返回字典的key …

1 分钟阅读

(十七)调用JavaScript代码

虽然WebDriver提供了操作浏览器的前进和后退方法,但对于浏览器滚动条并没有提供相应的操作方法。在这种情况下,就可以借助JavaScript来控制浏览器的滚动条。WebDriver提供了execute_script()方法来执行JavaScript代码。 用于调整浏览器滚动条位置的JavaScript代码如下: window.scrollTo()方法用于 …

1 分钟阅读

(十八)窗口截图

自动化用例是由程序去执行的,因此有时候打印的错误信息并不十分明确。如果在脚本执行出错的时候能对当前窗口截图保存,那么通过图片就可以非常直观地看出出错的原因。WebDriver提供了截图函数get_screenshot_as_file()来截取当前窗口。 脚本运行完成后打开D盘,就可以找到baidu_img.jpg图片文件了。

1 分钟阅读