本文介绍,如何通过webdriver方法获取浏览器的版本号.看起来这个功能很鸡肋,不管怎么说,还是学习下,特别是在发送自动化测试报告的时候,还是可以通过这个方法来告诉别人,执行过的脚本是通过什么浏览器,什么版本跑的吧. 相关脚本代码如下: # coding=utf-8import timefrom selenium import webdriver driver = webdriver.Chrome()driver.maximize_window()driver.implicitly_wait(…
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…
本文来学习下如何通过Selenium方法,设置符合不同测试场景浏览器窗口大小.例如,你有一台机器,最大支持1366*768,你完全可以利用这个机器测试不同分辨率下的场景. 相关测试脚本代码如下: # coding=utf-8import timefrom selenium import webdriver driver = webdriver.Chrome()driver.maximize_window() # 全屏driver.get('https://www.baidu.com')time.…
前面已经介绍了Python+Selenium基础篇,通过前面几篇文章的介绍和练习,Selenium+Python的webUI自动化测试算是入门了.接下来,我计划写第二个系列:练习篇,通过一些练习,了解和掌握一些Selenium常用的接口或者方法. 练习场景:在某一个网页上有些字段是我们感兴趣的,我们希望摘取出来,进行其他操作.但是这些字段可能在一个网页的不同地方.例如,我们需要在关于百度页面-联系我们,摘取全部的邮箱. 思路拆分: 1. 首先,需要得到当前页面的source内容,就像,打开一个页…
Python+Selenium中级篇之8-Python自定义封装一个简单的Log类: https://blog.csdn.net/u011541946/article/details/70198676…
如果想从头学起selenium,可以去看看这个系列的文章哦! https://www.cnblogs.com/miki-peng/category/1942527.html 前言 ​ 本文主要介绍selenium控制浏览器一些常用属性和方法,包括控制窗口大小.页面前进后退.页面刷新.打开或关闭标签页.滚动条等等 设置浏览器大小 import time from selenium import webdriver # 浏览器实例化 driver = webdriver.Chrome() # 把浏览…
Python + Selenium 自动化环境搭建过程 1. 所需组建 1.1 Selenium for python 1.2 Python 1.3 Notepad++ 作为刚初学者,这里不建议使用Python IDE工具,选择一个功能强大的记事本编辑工具就好,例如Notepad++.等以后积累足够了,需要编写更多文件,或者后期简单框架设计,我们再来介绍和使用Pycharm这个IDE工具. 2. 环境搭建 2.1 下载和安装Python 1) 下载Python 2.7.x 到 https://w…
本节介绍如何初始化一个webdriver实例对象driver,然后打开和关闭firefox浏览器.要用selenium打开fiefox浏览器.首先需要去下载一个driver插件geckodriver.exe, 下载地址https://github.com/mozilla/geckodriver/releases,下载好这个exe文件后,把这个文件放到你的python安装目录下,例如我的路径为:D:\Program Files (x86)\Python36\geckdriver.exe    .…
前一篇文章我们知道了,如何去封装几个简单的Selenium方法到我们自定义的类,这次我们编写一个类,叫浏览器引擎类,通过更改一个字符串的值,利用if语句去判断和控制启动那个浏览器.这里我们暂时,支持三大浏览器(IE,Chrome,Firefox).这里有一个前提条件,在基础篇中,启动三大浏览器的driver文件,检查下你的Python安装路径下有没有这三个driver插件,如果没有,请回到基础篇的如何启动火狐和IE浏览器文章去看看如何做. 我们继续在test1这个包下新建一个browser_en…
前面文章介绍了,如何调用webdriver接口方法来打开和关闭Firefox浏览器,本文介绍如何打开IE和Chrome浏览器.web项目,需要做兼容性测试,最重要的是浏览器兼容性测试.如果只考虑windows平台,相信应该很多公司必须要测试IE.Firefox.Chrome这三大浏览器.所以webui 自动化测试,也需要在这三大浏览器上面运行和测试脚本.从前面文章,我们知道,要调用Firefox浏览器,我们需要下载geckodriver.exe这个文件,放到Python的安装路径下,例如在安装P…
本节介绍如何初始化一个webdriver实例对象driver,然后打开和关闭firefox浏览器.要用selenium打开fiefox浏览器.首先需要去下载一个driver插件geckodriver.exe, 下载地址https://github.com/mozilla/geckodriver/releases,下载好这个exe文件后,把这个文件放到你的python安装目录下,例如:C:\Python27\geckdriver.exe. 用Notepad++打开一个空白文件,输入如下代码,保存为…
代码如下: # coding=utf-8import re    #python中利用正则,需要导入re模块from selenium import webdriverdriver = webdriver.Chrome()driver.maximize_window()url = ("http://home.baidu.com/contact.html")driver.get(url)doc = driver.page_source   #获得页面源代码emails = re.find…
本文介绍如selenium方法打开一个新的tab,我们知道在浏览器里,我们按住 ctrl+ t 就可以新打开一个tab.所以我们学习如何利用webdriver中send_key 的方法去触发ctrl+t的效果.我们利用火狐浏览器来演示. 相关代码如下: 主要是调用了keys模块下相关方法,可以通过这个方法,输入任何一个键盘上支持的字符或者快捷键. # coding=utf-8import timefrom selenium import webdriverfrom selenium.webdri…
前面文章,我们介绍了如何采用XPath表达式去定位网页元素,在掌握了如何抓取或者如何书写精确的XPath表达式后,我们可以开始写自己的第一个真正意义上的webui 自动化测试脚本,就相当于,你在学习Python,如何在控制台打印Hello,Python! 一样. 我们的测试用例是:打开百度首页,搜索Selenium,然后检查搜索列表,有没有Selenium这个官网链接选项. 在写自动化脚本之前,需要明确手动脚本的步骤,然后去拆分到具体没一个步骤做什么,考虑好了之后,才开始动手去写脚本.我把这个测…
目录 1,安装selenium和配置chromedriver 2,调用chromedriver打开网页获取网页内容 3,模拟登陆百度云 附录(webdriver版本兼容列表) 通过selenium库,python可以调用chrome打开指定网页并获取网页内容或者模拟登陆获取网页内容 1,安装selenium和配置chromedriver 安装selenium C:\Users\cord> pip install selenium 配置chromedriver 下载路径: http://chrom…
开始写自动化脚本之前,我们先学习几个概念,在完全掌握了这几个概念之后,有助于我们快速上手,如何去编写自动化测试脚本. 元素,在这个教程系列,我们说的元素之网页元素(web element).在网页上面的文本输入框,按钮,多选,单选,标签,和文字都叫元素,总之,凡是能在页面显示的对象都可以作为页面元素对象. 元素定位,有时候也叫Locator,一个HTML页面元素,可以用很多方法去描述这个元素的位置.打个比方,生活中地址,一个大厦,正常的地址是 xx省xx市xx区xx街道xxx号,这个具体描述就是…
我们可以利用Chrome DevTools协议.它允许客户检查和调试Chrome浏览器. 打开cmd,在命令行中输入命令: chrome.exe --remote-debugging-port=9222 --user-data-dir="C:\selenum\AutomationProfile" 对于-remote-debugging-port值,可以指定任何打开的端口. 对于-user-data-dir标记,指定创建新Chrome配置文件的目录.它是为了确保在单独的配置文件中启动ch…
本文来介绍,如何把常用的几个webdriver的方法封装到自己写的一个类中去,这个封装过程叫二次封装Selenium方法.我们把打开站点,浏览器前进和后退,关闭和退出浏览器这这个方法封装到一个新写的类中去. 我们按照如下层次结构在PyCharm中新建两个包和两个.py文件: 上图,baidu_search.py是我们编写测试脚本的python文件,具体测试代码写在这个文件.包test1下的basepage.py文件是这次我们介绍的二次封装selenium方法而新建的.这里提一下,python中默…
本文来介绍如何处理driver在多窗口之间切换,想一下这样的场景,在页面A点击一个连接,会触发在新Tab或者新窗口打开页面B,由于之前的driver实例对象在页面A,但是你接下来的脚本是操作页面B的元素,这样就造成了找不到元素的报错.本来介绍selenium中switch_to.window()方法来处理这个问题. 测试场景:打开百度新闻(页面A),点击热点新闻中第一个新闻链接(一般是国家领导人的新闻),会在第二个窗口打开这个新闻的具体详情页(页面B),测试需要去判断你点击这个这个新闻,在打开的…
在前面的基础篇的最后一篇,我们用到了输入字符和点击按钮这样的操作.用send_keys()来输入字符串到文本输入框这样的页面元素,用click()来点击页面上支持点击的元素.有时候,我们需要清除一个文本输入框内的文字,然后重新输入新的字符串,那边清除这个方法如何实现呢. 调用webdriever中clear()方法: 相关代码如下,为了演示测试效果,我们运行完脚本,不关闭浏览器: # coding=utf-8 from selenium import webdriver driver = web…
运行脚本时间比较长时可以不打开浏览器测试,这样在测试运行时,电脑还是可以用作其他操作的. 只需要在运行脚本上加上下面代码的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…
1.显示等待: from selenium import webdriver from time import sleep from selenium.webdriver.support.ui import WebDriverWait #显示等待针对元素操作 #EC预期条件类(里面主要有一些判断元素是否出现,弹出框是否出现,以及是否出现新窗口等.) #EC用的比较多的就是和显示等待一起使用,通过显示等待的方法来循环判断是否元素是否出现 from selenium.webdriver.suppor…
浏览器窗口可视区域大小获得浏览器窗口的尺寸(浏览器的视口,不包括工具栏和滚动条)的方法:一.对于IE9+.Chrome.Firefox.Opera 以及 Safari: • window.innerHeight // - 浏览器窗口的内部高度 • window.innerWidth // - 浏览器窗口的内部宽度 二.对于 Internet Explorer 8.7.6.5: • document.documentElement.clientHeight //表示HTML文档所在窗口的当前高度.…
XML 即可扩展标记语言,它可以用来标记数据.定义数据类型,是一种允许用户对自己的标记语言进 行定义的源语言.xml 有如下特征: 首先,它是有标签对组成:<aa></aa> 标签可以有属性: <aa id=’123’></aa> 标签对可以嵌入数据: <aa>abc</aa>Python对XML文档读写常用有几个模块: (1) xml.etree.ElementTree ElementTree就像一个轻量级的DOM,具有方便友好的A…
如下图所示: 当定位元素时,我想获取指定的某一列的某一行的断言,如图我只想获取jiancha1的值,有同学会说:直接定位不就好了.但是我们知道,列表的数据会时刻变动的,不能靠定死的路径,那该怎么办呢? 我们可以在定位元素上下文章,首先,通过F12定位元素XPATH路径: # 姓名:zc监察1 get_name_loc = (By.XPATH,"//div[@class='bs-example']/form/table/tbody/tr[1]/td[2]") # 姓名:jiancha1…
本文来介绍下Python中如何读取配置文件.任何一个项目,都涉及到了配置文件和管理和读写,Python支持很多配置文件的读写,这里我们就介绍一种配置文件格式的读取数据,叫ini文件.Python中有一个类ConfigParser支持读ini文件. 1. 在项目下,新建一个文件夹,叫config,然后在这个文件夹下新建一个file类型的文件:config.ini 文件内容如下: # this is config file, only store browser type and server UR…
本文介绍如何利用Selenium的方法进行截图,在测试过程中,是有必要截图,特别是遇到错误的时候进行截图.在selenium for python中主要有三个截图方法,我们挑选其中最常用的一种. get_screenshot_as_file()相关代码如下:# coding=utf-8import timefrom selenium import webdriver driver = webdriver.Chrome()driver.maximize_window()driver.implici…
本文来介绍如何通过Selenium方法去处理网页Alert弹窗,和处理iframe类似,都是通过switch_to方法.这里还是没有找到合适的alert弹窗网站,我们就自己创建一个吧,前面文章介绍了如何通过执行JS来增加一个弹窗. 相关脚本代码如下: # coding=utf-8import timefrom selenium import webdriver driver = webdriver.Chrome()driver.maximize_window()driver.implicitly…
本文介绍如何通过Selenium方法来获取某一个元素的text属性值.在很多自动化测试脚本中,需要多次获取元素的text值,拿过来进行对比和匹配.例如,在一个登陆界面,如果不输入用户名和密码,直接点击登录,肯定会有相关错误提醒.这个错误,我们需要通过selenium抓取出来,和需求说明文档中的描述去进行匹配,如果匹配,测试成功,否则失败. 这里用百度登录举例: 需要通过Selenium脚本去自动判断是否显示错误文字“请您填写手机/邮箱/用户名” 相关脚本代码如下: # coding=utf-8i…
继续来介绍一个Selenium中页面title断言方法. 相关脚本代码如下: # coding=utf-8 import time from selenium import webdriver driver = webdriver.Chrome() driver.maximize_window() driver.get('https://www.baidu.com') time.sleep(1) # 方法一 try: assert u"百度一下" in driver.title pri…