本章涉及Selenium WebDriver的所有接口. Recommended Import Style 推荐的导入风格如下: from selenium import webdriver 然后,你可以这样访问所有的类: webdriver.Firefox webdriver.FirefoxProfile webdriver.Chrome webdriver.ChromeOptions webdriver.Ie webdriver.Opera webdriver.PhantomJS webdr…
Installation Introduction Selenium Python bindings 提供了一个简单的API来使用Selenium WebDriver编写使用功能/验收测试.通过Selenium Python API,您可以通过直观的方式来访问Selenium WebDriver的所有功能. Selenium Python bindings 提供了一个便捷的API来访问Selenium WebDrivers,如Firefox,IE,Chrome浏览器,远程连接等.目前支持的Pyt…
如今,大多数的Web应用程序使用AJAX技术.当页面加载到浏览器,页面中的元素也许在不同的时间间隔内加载.这使得元素很难定位,如果在DOM中的元素没有呈现,它将抛出ElementNotVisibleException异常.使用waits,我们可以解决这个问题. Selenium WebDriver 提供两种类型的waits -- 隐式和显式.显式的wait使webdriver等待发生之前,继续执行一定的条件.一个隐式的wait使webdriver DOM在一定时间后,试图定位元素. Explic…
Simple Usage如果你已经安装了Selenium Python,你可以通过Python这样使用: #coding=gbk ''' Created on 2014年5月6日 @author: user ''' from selenium import webdriver from selenium.webdriver.common.keys import Keys driver = webdriver.Firefox() driver.get("http://www.python.org&…
当你想要通过webdriver导航到一个链接,正常的方式点是通过调用get方法: driver.get("http://www.google.com") Interacting with the page在页面中的HTML元素.如果我们需要找到定位一个.那么webdriver提供了许多方法来寻找元素.例如给了一个HTML的标签: <input type="text" name="passwd" id="passwd-id"…
有各种不同的策略来定位页面中的元素.你可以使用最合适定位方式用于你的用例.Selenium提供了以下方法来定位页面中的元素: find_element_by_id find_element_by_name find_element_by_xpath find_element_by_link_text find_element_by_partial_link_text find_element_by_tag_name find_element_by_class_name find_element_…
1. 辅助 Firepath Firefox是所有做前端的必不可少的浏览器因为firebug的页面元素显示很清晰.用selenium 去定位元素的时候Firefox还有一个非常友好的工具就是firepath.下载firepath,点击页面元素选择firepath选项,就会给出一种找到元素的路径. 可以选择的方式有xPath.sizzleJS.css三种方法. a.sizzle没有用过,由于过于麻烦还refactor过一个job改掉sizzle的定位方式. b.xPath肯定会找到这个元素且没有遇…
由于API文档格式不太适合cnblog博客,暂且翻译一部分,且暂未校对 注意:这不是官方文档,官方 API文档在这里. 本章包含Selenium WebDriver的所有接口 推荐import风格 本章中的API第一显示的都是类的绝对位置.然而,要推荐的是下面这种import风格: from selenium import webdriver 接着,你可以像下面这样访问其中的类: webdriver.Firefox webdriver.FirefoxProfile webdriver.Chrom…
作者:Baiju Muthukadan 协议:本文档采用知识共享署名 - 共享4.0国际许可. 原英文网址:http://selenium-python.readthedocs.io/index.html 翻译:Tacey Wong 注意 :这不是官方文档,官方API文档可以到这里查阅 目录 1.安装-100% 1.1简介 1.2下载Selenium Python 1.3 Driver驱动器 1.4 针对Windows用户的详细介绍 1.5下载Selenium server 2.初步开始-100…
1.1.简介 Selenium Python为使用Selenium WebDriver来编写功能/验证测试提供了一个简单的API接口.通过Selenium Python API,你可以以一种非常直观的方式来访问Selenium WebDriver的所有功能. Selenium Python为访问诸如火狐.IE.Chrome等浏览器的Selenium WebDriver提供了一个简便的API接口,当前该支持Python2.7,3.5+. 本文档仅仅介绍Selenium2 WebDriver的API…
2.1.简单使用 如果已经安装好了Selenium Python,你就可以像下面这样编写Python代码来使用它了: from selenium import webdriver from selenium.webdriver.common.keys import Keys driver = webdriver.Firefox() driver.get("http://www.python.org") assert "Python" in driver.title…
大多数现代web应用都使用了AJAX技术.当浏览器加载一个页面的时候,该页面内的元素可能在不用的时间间隔内进行加载.这使得元素定位变得比较困难:如果一个元素还没有出现在DOM中,定位函数将会抛出一个ElementNotVisibleException异常.使用waits等待可以解决这个问题.等待将会给定位一个元素或者对元素进行一些其他的操作提供一个缓冲的时间. Selenium WebDriver提供了两种类型的等待--显式等待和隐式等待.显式等待会给WebDriver一个确定的条件,如果条件满…
另外一个FAQ:https://github.com/SeleniumHQ/selenium/wiki/Frequently-Asked-Questions 8.1.怎样使用ChromeDriver 从chromedriver 下载页下载版(译者注:需FQ).解压压缩包: unzip chromedriver_linux32_x.x.x.x.zip 你应该看到一个chromedriver可执行文件.接着你就可以像下面这样创建一个WebDriver实例: driver = webdriver.Ch…
本章是介绍页面对象设计模式的教程.一个页面对象代表了web应用用户接口的一片区域,你的测试代码将与之交互的. 使用页面对象模式的好处: 可以创建在多个测试样例中都可使用的可重用代码 减少重复性代码 如果用户接口发生改变,只需要字一个地方做出改动即可 6.1 测试样例 下面是一个测试样例,用于测试Pytohn.org网站的搜索功能,搜索一个单词,并确保能得到一些结果. import unittest from selenium import webdriver import page class…
这章总结selenium在UI测试方面的用法 import unittest from selenium import webdriver from selenium.webdriver.common.keys import Keys class PythonOrgSearch(unittest.TestCase): def setUp(self): self.driver = webdriver.Firefox() def test_search_in_python_org(self): dr…
掌握selenium最简单的方法就是参考例子进行学习,下面给出之前项目的测试例子及分析 # -*- coding: utf-8 -*- import time from selenium import webdriver # 使用firefox浏览器来展示效果,创建了selenium WebDriver的实例 driver = webdriver.Firefox() #driver.get方法打开测试网址 127.0.0.1:8000/ChasingSomeone driver.get('htt…
你使用WebDriver要做的第一件事就是访问一个链接.一般通过调用get方法来实现: driver.get("http://www.baidu.com") 在将控制权返给你的脚本之前WebDriver将会等待Web页面完全加载(也就是说,等待onload被触发).值得注意的是如果你的页面在加载的时候使用了大量的AJAX的话,WebDriver可能不知道什么时候页面已经加载完成.如若你需要确保这类页面被完整加载,可以使用wait等待. 3.1.与页面进行交互 仅仅访问一个页面并没什么大…
要定位一个页面中的元素有多中策略和方法.你可以根据实际情况选择其中最为合适的.Selenium为定位页面元素提供了下面的这些方法: find_element_by_id(使用id) find_element_by_name(使用name属性值) find_element_by_xpath(使用XPath) find_element_by_link_text(使用显示文本) find_element_by_partial_link_text(使用超链接文本) find_element_by_tag…
一个合理的文档结构在import的过程中会避免很多错误,踩完坑来记录. webtests/ framework.py webdriver.py test_file.py module/ __init__.py PageObjects/ __init__.py all_pages.py object.py 上面这个丑丑的就是修改完后比较合理正确的一个文档结构. 说明: 1. 以test_开头命名所有的testcase文件 2. 抽出公共的方法到framework中 3. webdriver 中要声…
持久化存储 Getting console.log output from Chrome with Selenium Python API bindings - Stack Overflow https://stackoverflow.com/questions/20907180/getting-console-log-output-from-chrome-with-selenium-python-api-bindings from selenium import webdriver from…
2.1 操作元素基本方法 前言前面已经把环境搭建好了,从这篇开始,正式学习selenium的webdriver框架.我们平常说的 selenium自动化,其实它并不是类似于QTP之类的有GUI界面的可视化工具,我们要学的是webdriver框架的API.本篇主要讲如何用Python调用webdriver框架的API,对浏览器做一些常规的操作,如打开.前进.后退.刷新.设置窗口大小.截屏.退出等操作. 2.1.1 打开网页 1.从selenium里面导入webdriver模块2.打开Firefox…
一般来说,所有有趣的操作与页面交互都将通过 WebElement 接口,包括上一节中介绍的对象定位,以及本节中需要介绍的常对象操作.webdriver 中比较常用的操作元素的方法有下面几个: clear 清除元素的内容,如果可以的话 send_keys 在元素上模拟按键输入 click 单击元素 submit 提交表单3.1.登录实例下面以快播私有云登录实例来展示常见元素操作的使用:#coding=utf-8from selenium import webdriverdriver = w…
之前一直没有系统的梳理WebDriver Api的相关知识,今天借此机会整理一下. 1.页面元素定位 1.1.8种常用定位方法 # id定位 driver.find_element_by_id() # name定位 driver.find_element_by_name() # className定位 driver.find_element_by_class_name() # tag定位 driver.find_element_by_tag_name() # link定位 driver.find…
WebDriver基础 欢迎阅读WebDriver基础讲义.本篇讲义将会重点介绍Selenium WebDriver的环境搭建和基本使用方法. WebDriver环境搭建 Selenium WebDriver 又称为 Selenium2. Selenium 1 + WebDriver = Selenium 2 WebDriver是主流Web应用自动化测试框架,具有清晰面向对象 API,能以最佳的方式与浏览器进行交互. 支持的浏览器: Mozilla Firefox Google Chrome M…
因为webdriver的api方法很长,再加上大多数的定位方式是以xpath方式定位,更加让代码看起来超级长,为了使整体的代码看起来整洁,对webdriver进行封装,学习资料来源于虫师的<selenium +  python自动化测试>一书. 在与测试用例文件夹同一目录下新建一个文件夹package,用来放置封装方法的模块文件 我们将webdriver二次封装的文件命名为location.py from selenium import webdriver from test_case.pub…
配置完的环境之后,我们先来写一个小脚本: # __Author__:"Jim_xie" from selenium import webdriver from time import sleep #打开浏览器 driver = webdriver.Chrome() #以get方法打开指定浏览器 driver.get('http://music.163.com') #注意URL以HTTP开头 #等待3秒 sleep(3) #关闭浏览器 driver.close() 注:建议在开始sele…
由于web自动化常常需要控制浏览器行为和操作页面元素,相关函数又比较多,于是再此记下一份Webdriver API查阅文档以备不时之需. 参考:虫师<Selenium2自动化测试实战>,和http://selenium-python.readthedocs.io/api.html #coding=utf-8 from selenium import webdriver driver=webdriver.Firefox() driver.get('http://www.baidu.com/')…
WebDriver 封装 欢迎阅读WebDriver封装讲义.本篇讲义将会重点介绍Selenium WebDriver API的封装的概念和方法,以及使用封装进行自动化测试的设计. WebDriver API 封装 封装的概念 从之前的讲义和学习中,我们知道,WebDriver API的调用以及自动化测试,我们也初步接触了线性测试.以及模块化自动化测试和数据驱动测试,那么回顾之前的内容,我们不只是可以利用WebDriver提供的一系列的定位符以便使用元素定位方法,我们这里开始尝试封装后调用.首先…
WebDriver 进阶 欢迎阅读WebDriver进阶讲义.本篇讲义将会重点介绍Selenium WebDriver API的重点使用方法,以及使用模块化和参数化进行自动化测试的设计. WebDriver API 进阶使用 元素定位 从之前的讲义和学习中,我们知道,WebDriver API的调用以及自动化测试,务必从页面元素的定位开始,那么回顾之前的内容,WebDriver提供了一系列的定位符以便使用元素定位方法.常见的定位符有以下几种: id name class name tag lin…
在火狐浏览器33版本,python2.7运行selenium webdriver api报错:SessionNotCreatedException: Message: Unable to find a matching set of capabilities 网上搜了一下,说可以升级浏览器版本到52以上,我升级到了55版本,没有报错了 解决办法:Update Firefox to version >= 52.0.3,更新Firefox版本52.0.3以上 可能也与geckodriver的版本有关…