初入python+selenium学习之路,总会遇到这样那样的问题.IndentationError: unexpected indent,这个坑我已经踏进数次了,索性记录下来.都知道Python对代码格式要求挺严格,这个message是在告诉你:你的格式有问题,要检查下tab和空格,可能是没对齐 解决过程: 根据错误位置提示,发现是这个函数除了问题,如下图: 红框圈出的缩进没有对齐,对齐之后就OK了 执行结果成功:  我踏过的,是不曾虚度的昨天,我去向的 ,永远是比今天更好的远方…
ylbtech-建站手册-浏览器信息:Google Chrome 浏览器 1.返回顶部 1. http://www.w3school.com.cn/browsers/browsers_chrome.asp 2. 2.返回顶部 1. chrome 是免费的开源 web 浏览器,它由 Google 开发. Chrome 是什么? 当 Google 决定开发一款浏览器时,他们需要彻底地重新谋划这款浏览器,这是因为如今的浏览器与仅需要浏览简单的文本页面时有很大的不同,现在,我们在浏览器上发邮件.购物.付…
from selenium import webdriver # open Firefox #driver=webdriver.Firefox() # Open IE #driver=webdriver.Ie() # Open=Chrome driver=webdriver.Chrome() driver.maximize_window() driver.get("https://baidu.com") driver.quit() 其中在启动IE时,启动不成功,报错如下: 之前启动过是…
Selenium(Webdriver)支持Firefox,IE,Chrome等多个浏览器.很多人可能装环境时遇到很多问题,下面简单聊聊如何配置测试这几个浏览器以及相关通过简单的实例来测试. 1.Firefox浏览器 Firefox浏览器是Selenium自动化测试中最常用的一个浏览器,包括Selenium IDE插件,FireBug插件,FirePath插件等自动化测试必备的辅助工具. 而且Firefox驱动包含在Selenium安装包中,无需再下载Firefox驱动,安装完Selenium后就…
本节介绍如何初始化一个webdriver实例对象driver,然后打开和关闭firefox浏览器.要用selenium打开fiefox浏览器.首先需要去下载一个driver插件geckodriver.exe, 下载地址https://github.com/mozilla/geckodriver/releases,下载好这个exe文件后,把这个文件放到你的python安装目录下,例如我的路径为:D:\Program Files (x86)\Python36\geckdriver.exe    .…
1.首先要下载浏览器对应的driver,并放到你的python安装目录 Chrome浏览器(chromedriver): http://npm.taobao.org/mirrors/chromedriver/   (注意下载的版本是不是跟你的浏览器版本对应) Firefox浏览器(geckdriver): https://github.com/mozilla/geckodriver/releases 2.打开Firefox from selenium import webdriverdriver…
一.浏览器操作相关 from selenium import webdriver driver = webdriver.Chrome() driver.maximize_window() # 窗口最大化 driver.set_window_size(400,800) # 设置窗口大小 driver.back() # 回退一层 driver.forward() # 前进一层 driver.quit() # 退出浏览器 driver.close() # 关闭浏览器 二.元素定位 # 根据id定位 d…
读取txt的内容并用百度查找搜索 1 # coding = utf-8 2 3 from selenium import webdriver 4 import time 5 6 # 打开浏览器 7 dr = webdriver.Firefox() 8 dr.get("http://www.baidu.com") 9 10 ''' 11 # 读取列表的 12 words = ['python', 'selenium', 'webdriver'] 13 14 for word in wor…
前言 一个自动化测试框架就是一个集成体系,在这一体系中包含测试功能的函数库.测试数据源.测试对象识别标准,以及种可重用的模块.自动化测试框架在发展的过程中经历了几个阶段,模块驱动测试.数据驱动测试.对象驱动测试.本章就带领读者了解这几种测试模型 1. 自动化测试模型介绍 自动化测试模型是自动化测试架构的基础,自动化测试的发展也经历的不同的阶段,不断有新的模型(概念)被提出,了解和使用这些自动化模型将帮助我们构建一个灵活可维护性的自动化架构 1.1 线性测试 通过录制或编写脚本,一个脚本完成一个场…
豆瓣原创电子书每周推出数十本限时免费数目,一周免费期过后恢复原价.想着豆瓣原创书中有不少值得一看,便写了个脚本,免去一个个添加的烦恼. 使用了Windows下selenium+Python的组合,有较多的文档可以查阅,主要总结如下: 1.使用chrome浏览器:下载旧版本(52),新版本不兼容,下载chromedriver,放入chrome安装目录,于chrome.exe同目录,并添加到Path环境变量. 2.强大的元素定位:通过浏览器审查元素直接复制的xpath多为绝对定位,容易受网页结构调整…
场景 设置浏览器窗口的大小有下面两个比较常见的用途: 在统一的浏览器大小下运行用例,可以比较容易的跟一些基于图像比对的工具进行结合,提升测试的灵活性及普遍适用性.比如可以跟sikuli结合,使用sikuli操作flash: 在不同的浏览器大小下访问测试站点,对测试页面截图并保存,然后观察或使用图像比对工具对被测页面的前端样式进行评测.比如可以将浏览器设置成移动端大小(320x480),然后访问移动站点,对其样式进行评估: 代码 #!/usr/bin/env python # -*- coding…
场景 有时候web 页面上的元素并非直接可见的,就算把浏览器最大化,我们依然需要拖动滚动条才能看到想要操作的元素,这个时候就要控制页面滚动条的拖动,但滚动条并非页面上的元素,可以借助JavaScript是来完成操作.一般用到操作滚动条的会两个场景: 注册时的法律条文的阅读,判断用户是否阅读完成的标准是:滚动条是否拉到最下方 要操作的页面元素不在视觉范围,无法进行操作,需要拖动滚动条 代码 #!/usr/bin/env python # -*- codinfg:utf-8 -*- ''' @aut…
运行脚本时间比较长时可以不打开浏览器测试,这样在测试运行时,电脑还是可以用作其他操作的. 只需要在运行脚本上加上下面代码的678行即可 1 # coding = utf-8 2 3 from selenium import webdriver 4 import time 5 6 option = webdriver.FirefoxOptions() 7 option.set_headless() 8 br = webdriver.Firefox(firefox_options=option) 9…
一.安装selenium 命令安装selenium库 :pip  install -U selenium 查看selenium是否安装成功:pip list PS:有时会有异常,安装失败,可以尝试去selenium官网下载,selenium的资源包.下载地址:https://www.seleniumhq.org/download/,把包放到目录D:\python\Python36\Lib\site-packages下解压, 进入路径D:\python\Python36\Lib\site-pack…
场景 页面上弹出的对话框是自动化测试经常会遇到的一个问题:很多情况下对话框是一个iframe,如之前iframe介绍的例子,处理起来稍微有点麻烦:但现在很多前端框架的对话框是div 形式的,这就让我们的处理变得十分简单. 代码 #!/usr/bin/env python # -*- codinfg:utf-8 -*- ''' @author: Jeff LEE @file: 对话框.py @time: 2018-09-25 9:52 @desc: ''' from selenium import…
场景 这两个功能一般不太常用.所能想到的场景大概也就是在几个页面间来回跳转,省去每次都get url. 代码 #!/usr/bin/env python # -*- coding:utf-8 -*- ''' Created on 2018/5/9 11:26 @author: Jeff Lee @file: 前进和后退.py ''' from selenium import webdriver import time print('打开浏览器') cl = webdriver.Firefox()…
场景 测试中,访问1个页面然后判断其title是否符合预期是很常见的1个用例,所谓用例不够,title来凑就是这个道理.更具体一点,假设1个页面的title应该是'hello world', 那么可以写这样的一个用例:访问该页面,获取该页面的title,判断获取的值是否等于'hello world'. 获取当前页面的url也是非常重要的一个操作.在某些情况下,你访问一个url,这时系统会自动对这个url进行跳转,这就是所谓的'重定向'.一般测试重定向的方法是访问这个url,然后等待页面重定向完毕…
场景 web UI测试里最简单也是最基本的事情就是访问1个链接了. 在python的webdrive中,访问url时应该使用get方法. 代码 #!/usr/bin/env python # -*- coding:utf-8 -*- ''' Created on 2018/5/9 11:13 @author: Jeff Lee @file: 访问链接.py ''' from selenium import webdriver import time print('打开浏览器') cl = web…
selenium是一个python模块,具有自动化模拟浏览器的功能 selenium的中文文档地址:http://selenium-python-zh.readthedocs.io/en/latest/index.html 测试教程网:http://www.testclass.net/# Mechanize&Selenium博客:http://blog.csdn.net/u011974639/article/details/73148949 单选框和复选框:http://www.cnblogs.…
前言 Webdriver 提供错误截图函数get_screenshot_as_file(),可以帮助我们跟踪bug,在脚本无法继续执行时候, get_screenshot_as_file()函数将截取当前页面的截图保存到指定的位置,这是一个非常棒的功能,下面实例展示get_screenshot_as_file()函数的使用. 代码 #!/usr/bin/env python # -*- codinfg:utf-8 -*- ''' @author: Jeff LEE @file: 异常截图.py…
场景 有时候我们需要验证浏览器中是否存在某个cookie,因为基于真实的cookie 的测试是无法通过白盒和集成测试完成的.webdriver 可以读取.添加和删除cookie 信息.webdriver 操作cookie 的方法有: get_cookies() 获得所有cookie 信息 get_cookie(name) 返回特定name 有cookie 信息 add_cookie(cookie_dict) 添加cookie,必须有name 和value 值 delete_cookie(name…
场景 webdriver 允许我们设置默认的文件下载路径.也就是说文件会自动下载并且存在设置的那个目录中,下面以firefox及chrome为例 代码 Firefox下载 为了让Firefox浏览器能实现文件下载,需要通过FirefoxProfile()对其做一些设置. browser.download.foladerList :设置成0代表下载到浏览器默认下载路径,设置成2则可以保存到指定的目录. browser.download.manager.showWhenStarting  :是否显示…
场景 文件上传操作也比较常见功能之一,上传功能操作webdriver 并没有提供对应的方法,关键上传文件的思路.上传过程一般要打开一个系统的window 窗口,从窗口选择本地文件添加.所以,一般会卡在如何操作本地window 窗口.其实,上传本地文件没我们想的那么复杂:只要定位上传按钮,通send_keys 添加本地文件路径就可以了.绝对路径和相对路径都可以,关键是上传的文件存在. 代码 upload_file.html <html> <head> <meta http-eq…
场景 有时候我们在测试一个web 应用时会出现多个浏览器窗口的情况,在selenium1.0 中这个问题比较难处理.webdriver 提供了相关相方法可以很轻松的在多个窗口之间切换并操作不同窗口上的元素 代码 #!/usr/bin/env python # -*- codinfg:utf-8 -*- ''' @author: Jeff LEE @file: 多窗口处理.py @time: 2018-09-25 10:57 @desc: ''' from selenium import webd…
场景 sleep():设置固定休眠时间.python 的time 包提供了休眠方法sleep() ,导入time 包后就可以使用sleep()进行脚本的执行过程进行休眠.implicitly_wait():是webdirver 提供的一个超时等待.隐的等待一个元素被发现,或一个命令完成.如果超出了设置时间的则抛出异常.WebDriverWait():同样也是webdirver 提供的方法.在设置时间内,默认每隔一段时间检测一次当前页面元素是否存在,如果超过设置时间检测不到则抛出异常. 代码 #!…
前言 在脚本运行完成之后,除了在log.txt 文件看到运行日志外,我们更希望能生一张漂亮的测试报告来展示用例执行的结果.        HTMLTestRunner 是Python 标准库的unittest 模块的一个扩展.它生成易于使用的HTML 测试报告.HTMLTestRunner 是在BSD 许可证下发布.        首先要下HTMLTestRunner.py 文件(百度自行搜索). 代码 #!/usr/bin/env python # -*- codinfg:utf-8 -*-…
场景 我们在测试一个web 应用时,经常出现翻页的情况,下面介绍翻页场景 代码 #!/usr/bin/env python # -*- codinfg:utf-8 -*- ''' @author: Jeff LEE @file: 翻页.py @time: 2018-09-26 11:14 @desc: ''' from selenium import webdriver from selenium.webdriver.common.action_chains import ActionChain…
场景 下拉框也是web 页面上非常常见的功能,webdriver 对于一般的下拉框处理起来也相当简单,要想定位下拉框中的内容,首先需要定位到下拉框:这样的二次定位 下拉框一般有以下两种方式: 鼠标移上去直接弹出的,那么我们可以使用move_to_element()进行操作,在上一章alert/confirm/prompt处理章节已经介绍 下拉框处理是两次点击,第一点击弹出下拉框,第二次点击操作元素,下面将介绍这种 代码 #!/usr/bin/env python # -*- codinfg:ut…
场景 webdriver 中处理JavaScript 所生成的alert.confirm 以及prompt 是很简单的.具体思路是使用switch_to.alert()方法定位到alert/confirm/prompt.然后使用text/accept/dismiss/send_keys 按需进行操做. text                        返回alert/confirm/prompt 中的文字信息 accept                   点击确认按钮 dismiss …
场景 在web 应用中经常会出现frame 嵌套的应用,假设页面上有A.B 两个frame,其中B 在A 内,那么定位B 中的内容则需要先到A,然后再到B.      switch_to_frame 方法可以把当前定位的主体切换了frame 里.怎么理解这句话呢?我们可以从frame的实质去理解.frame 中实际上是嵌入了另一个页面,而webdriver 每次只能在一个页面识别,因此才需要用switch_to.frame 方法去获取frame 中嵌入的页面,对那个页面里的元素进行定位.   …