- 浏览: 312363 次
- 性别:
- 来自: 上海
文章分类
最新评论
-
yan372397390:
请问这几行命令是在哪里输入的
Genymotion模拟器安装Genymotion-ARM-Translation变copy的解决办法 -
littlevine:
...
"WebDriverException: Cannot find firefox binary in PATH."的解决方法 -
jujis008:
楼主, 这selenium用的是jdk自带的log,所以在% ...
PhantomJSDriver怎么设置在console里不输出运行信息 -
qi_ling2005:
OnTheRoad_lee 写道 String[] phant ...
PhantomJSDriver怎么设置在console里不输出运行信息 -
OnTheRoad_lee:
String[] phantomArgs = new Str ...
PhantomJSDriver怎么设置在console里不输出运行信息
selenium webdriver对浏览器的简单操作
打开一个测试浏览器
对浏览器进行操作首先需要打开一个浏览器,接下来才能对浏览器进行操作。但要注意的是,因为Chrome Driver是Chromium 项目自己支持和维护的,所以你必需另外下载安装Chrome Driver,详细介绍查下他们的wiki 。
import java.io.File; import org.openqa.selenium.WebDriver; import org.openqa.selenium.firefox.FirefoxBinary; import org.openqa.selenium.firefox.FirefoxDriver; import org.openqa.selenium.ie.InternetExplorerDriver; public class OpenBrowsers { public static void main(String[] args) { //打开默认路径的firefox WebDriver diver = new FirefoxDriver(); //打开指定路径的firefox,方法1 System.setProperty("webdriver.firefox.bin","D:\\Program Files\\Mozilla Firefox\\firefox.exe"); WebDriver dr = new FirefoxDriver(); //打开指定路径的firefox,方法2 File pathToFirefoxBinary = new File("D:\\Program Files\\Mozilla Firefox\\firefox.exe"); FirefoxBinary firefoxbin = new FirefoxBinary(pathToFirefoxBinary); WebDriver driver1 = new FirefoxDriver(firefoxbin,null); //打开ie WebDriver ie_driver = new InternetExplorerDriver(); //打开chrome System.setProperty("webdriver.chrome.driver", "D:\\chromedriver.exe"); System.setProperty("webdriver.chrome.bin", "C:\\Documents and Settings\\gongjf\\Local Settings" +"\\Application Data\\Google\\Chrome\\Application\\chrome.exe"); } }
打开指定路经ie和chrome方法和ff一样。
打开1个具体的url
打开一个浏览器后,我们需要跳转到特定的url下,看下面代码:
import org.openqa.selenium.WebDriver; import org.openqa.selenium.firefox.FirefoxDriver; public class OpenUrl { public static void main(String []args){ String url = "http://www.51.com"; WebDriver driver = new FirefoxDriver(); //用get方法 driver.get(url); //用navigate方法,然后再调用to方法 driver.navigate().to(url); } }
如何关闭浏览器
测试完成后,需要关闭浏览器
import org.openqa.selenium.WebDriver; import org.openqa.selenium.firefox.FirefoxDriver; public class CloseBrowser { public static void main(String []args){ String url = "http://www.51.com"; WebDriver driver = new FirefoxDriver(); driver.get(url); //用quit方法 driver.quit(); //用close方法 driver.close(); } }
如何返回当前页面的url和title
有时候我们需要返回当前页面的url或者title做一些验证性的操作等。代码如下:
import org.openqa.selenium.WebDriver; import org.openqa.selenium.firefox.FirefoxDriver; public class GetUrlAndTitle { public static void main(String []args){ String url = "http://www.51.com"; WebDriver driver = new FirefoxDriver(); driver.get(url); //得到title String title = driver.getTitle(); //得到当前页面url String currentUrl = driver.getCurrentUrl(); //输出title和currenturl System.out.println(title+"\n"+currentUrl); } }
其他方法
- getWindowHandle() 返回当前的浏览器的窗口句柄
- getWindowHandles() 返回当前的浏览器的所有窗口句柄
- getPageSource() 返回当前页面的源码
小结
从上面代码可以看出操作浏览器的主要方法都来自org.openqa.selenium.WebDriver这个接口中。看了一下源代码这些方法都是在org.openqa.selenium.remote.RemoteWebDriver这个类中实现的,然后不同浏览的driver类继承RemoteWebDriver。
评论
4 楼
qi_ling2005
2014-10-17
tianzhihehe 写道
系统的验证比较复杂,需要验证码。能不能手工输入验证码登录之后,启动selenium来接管firefox呢?
官网上不了,我就厚颜在这直接问了,呵呵。
官网上不了,我就厚颜在这直接问了,呵呵。
对于验证码,普遍的做法是把公司的ip设置白名单,就是公司内部访问网站不出验证码。
你说的手工输验证码其实也是可以实现的。
最简单的方法是到填写验证码那一步sleep几秒,手工填。
还有一种比较智能的方法,就是启动selenium打开浏览器后,到填写验证码的那一步,你不断去取验证码输入框的值,如果它的值长度刚好等于验证码长度,则进行下一步。
... //到输入验证码这一步,假设验证码长度为4 while(driver.findElement(By.id("verificationCodeFiledID")).getAttribute("value").length()!=4){ Thread.sleep(1000); } //手动输完验证码进行下一步 ...
上面的不够好(用了Thread.sleep, 如果你不输入会一直循环), 下面用selenium自带的wait方式,看如下代码,假设百度输入框为你的验证码:
import org.openqa.selenium.By; import org.openqa.selenium.WebDriver; import org.openqa.selenium.firefox.FirefoxDriver; import org.openqa.selenium.support.ui.ExpectedCondition; import org.openqa.selenium.support.ui.WebDriverWait; public class test { /** * @param args * @throws InterruptedException */ public static void main(String[] args) throws InterruptedException { // TODO Auto-generated method stub WebDriver driver = new FirefoxDriver(); driver.get("http://www.baidu.com"); (new WebDriverWait(driver, 10)).until(new ExpectedCondition<Boolean>() { @Override public Boolean apply(WebDriver d) { return d.findElement(By.id("kw")).getAttribute("value") .length() == 4; } }); //设置10秒超时,输入4个字母后执行下面的步骤 driver.findElement(By.id("su")).click(); System.out.println(driver.getTitle()); driver.quit(); } }
3 楼
tianzhihehe
2014-08-21
系统的验证比较复杂,需要验证码。能不能手工输入验证码登录之后,启动selenium来接管firefox呢?
官网上不了,我就厚颜在这直接问了,呵呵。
官网上不了,我就厚颜在这直接问了,呵呵。
2 楼
qi_ling2005
2012-12-12
blueskyzs 写道
奇怪,为什么我的firexfox没有安装在默认目录下,安装在D盘的,WebDriver diver = new FirefoxDriver() 就可以直接打开浏览器呢,并没有报错!
System.setProperty("webdriver.firefox.bin","D:\\Program Files\\Mozilla Firefox\\firefox.exe");
你代码里有这句话吗?有就可以打开
1 楼
blueskyzs
2012-11-08
奇怪,为什么我的firexfox没有安装在默认目录下,安装在D盘的,WebDriver diver = new FirefoxDriver() 就可以直接打开浏览器呢,并没有报错!
发表评论
-
selenium github doc
2015-07-21 16:26 1085selenium 官网被墙, 看不了doc, 可以去下面这个 ... -
selenium webdriver学习(二十二)------------XVFB实现selenium在linux上无界面运行安装篇
2015-03-12 12:25 13837selenium在linux上无界面 ... -
PhantomJSDriver怎么设置在console里不输出运行信息
2014-11-10 15:50 2364每次运行PhantomJSDriver都输出一堆的INFO、 ... -
selenium webdriver 常见问题
2012-07-10 18:31 0注我下面说到的webdriver就是指selenium web ... -
selenium和webdriver合并的原因
2012-07-04 10:48 3374selenium和webdriver合并的原因,传送门 -
selenium webdriver学习(二十一)------------Selenium Grid深入学习
2012-06-29 18:35 4831应网友要求写一个用Selenium Grid控制多系统多浏览器 ... -
selenium webdriver学习(二十)------------Selenium Grid
2012-06-27 18:37 5836Selenium Grid允许同时并行 ... -
selenium webdriver学习(十九)-------我们的构建文件CrazyFunBuild (译)
2012-06-14 10:50 2284原文:CrazyFunBuild ... -
selenium webdriver学习(十八)----------构建webdriver
2012-05-22 16:03 4362准备环境 对所有版 ... -
selenium webdriver学习(十七)----------把selenium项目同步到本地eclipse
2012-05-11 16:00 3981这里主要是想把selenium的整个项目同步到eclipse的 ... -
selenium webdriver学习(十六)----------用selenium webdriver实现selenium RC中的类似的方法
2012-05-11 15:35 4765最近想总结一下学习selenium webdriver的情况, ... -
selenium webdriver学习(十五)------------如何处理FirefoxProfile
2012-04-10 18:29 9058这一节主要涉及 selenium webdriver处理Fir ... -
selenium webdriver学习(十四)------------如何处理table
2012-04-07 09:15 7441以前在selenium RC 里面有一个getTable方法, ... -
selenium webdriver学习(十三)------------如何利用Actions类模拟鼠标和键盘的操作
2012-03-29 12:36 12036在selenium webdriver学习(十)------- ... -
selenium webdriver学习(十二)------------如何利用selenium-webdriver截图
2012-03-26 16:29 5878在自动化测试中常常会用到截图功能。最近用了一下selenium ... -
学习selenium-webdriver一些网站
2012-03-20 16:49 0http://www.aosabook.org/en/sele ... -
selenium webdriver学习(十一)------------如何等待页面元素加载完成
2012-03-14 18:25 15478web的自动化测试中,我们经常会遇到这样一种情况:当我们的程 ... -
selenium webdriver学习(十)------------如何把一个元素拖放到另一个元素里面
2012-03-13 13:09 5900Q群里有时候会有人问,selenium webdriver怎 ... -
selenium webdriver学习(九)------------如何操作cookies
2012-03-12 17:45 5209Web 测试中我们经常会接触到Cookies,一个Cookie ... -
selenium webdriver学习(八)------------如何操作select下拉框
2012-03-12 16:06 10197下面我们来看一下selenium webdriver是如何来处 ...
相关推荐
1.2 selenium webdriver学习(二)————对浏览器的简单操作 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 1.3 selenium webdriver学习(三)------------执行js脚本 . . . . . . . . . . . . . ...
### Selenium WebDriver 学习总结——元素定位技巧详解 在自动化测试领域,Selenium WebDriver 已成为业界标准之一,尤其在 Web 应用测试方面表现突出。本文将详细探讨 WebDriver 提供的各种元素定位策略及其应用...
WebDriver是Selenium的一个接口,允许编程方式地控制浏览器。在这个例子中,我们使用了Chrome浏览器的WebDriver(chromedriver)。 2. **unittest框架**: Python内置的单元测试框架,可以编写和组织测试用例。...
作者提到 webdriver API 对元素的定位和操作有丰富的知识点,并通过学习这些知识点来整理博客文章,最终形成了这本书。 书中还涉及了参数化脚本、测试报告生成和测试结构调整等高级话题。参数化测试可以让测试用例...
Selenium WebDriver 入门知识、Selenium Python脚本、使用unittest 编写单元测试、生成HTML格式的测试报告、元素定位、Selenium Python API 介绍、元素等待机制、跨浏览器测试、移动端测试、编写一个iOS测试脚本、...
当我们谈论"Selenium之Firefox的gwebdriver驱动"时,实际上是指使用Selenium与Firefox浏览器交互时需要的一个关键组件——GeckoDriver。 **GeckoDriver**,全称Mozilla Gecko Driver,是由Mozilla开发的WebDriver...
这个版本的Selenium WebDriver提供了对多种浏览器的支持,包括Chrome、Firefox、Internet Explorer等,通过对应的WebDriver实现。例如,你可以使用`ChromeDriver`来控制Chrome浏览器,或者使用`FirefoxDriver`来控制...
在Python的UI自动化测试中,经常需要使用Selenium的WebDriver来控制浏览器进行各种操作。然而,每次实例化一个新的WebDriver对象时,浏览器都会被重新启动,这在处理多个场景时可能导致不必要的资源浪费。为了解决这...
在2018年5月18日发布的这个压缩包中,包含了Selenium支持的三个主流浏览器——Firefox、Google Chrome和Microsoft Edge的对应WebDriver驱动程序。 **1. Selenium WebDriver** Selenium WebDriver 是Selenium的一个...
Selenium WebDriver是一个用于自动化Web浏览器的强大工具,它可以模拟用户在浏览器上的各种操作,例如点击链接、填写表单、验证页面元素等。Selenium2Library提供了许多关键词,使用户能轻松地在Robot Framework中调...
### 二、Selenium WebDriver Selenium WebDriver与浏览器直接通信,它取代了Selenium RC,后者需要在服务器端运行一个浏览器实例。WebDriver API支持多种编程语言,包括Java、Python、C#、Ruby以及我们的重点——...
Selenium WebDriver是一个强大的自动化测试工具,它允许程序员模拟用户行为,对Web应用程序进行自动化测试。这个工具支持多种编程语言,包括Java、Python、C#、Ruby等,而现在,它也有了针对Crystal语言的客户端——...
Selenium WebDriver是一款强大的自动化测试工具,用于模拟真实用户在浏览器上的操作。它支持多种浏览器,包括Firefox、Chrome、Internet Explorer等。在本话题中,我们将聚焦于Selenium 3.3.1版本与Firefox的配合...
这个压缩包包含了针对两种主流浏览器——谷歌Chrome和Microsoft Internet Explorer (IE) 的WebDriver实现。 首先,`chromedriver.exe`是谷歌浏览器的WebDriver实现,由谷歌开发并维护。它是一个服务器端组件,能够...
本文将深入探讨一个与Selenium相关的Crystal库——`webdrivers.cr`,它帮助开发者更有效地管理和更新Selenium WebDriver。 首先,让我们了解什么是`webdrivers.cr`。这是一个专门为Crystal编程语言设计的库,它的...
在本压缩包中,包含的是针对Firefox浏览器的WebDriver实现——FirefoxDriver,以及相关的Selenium库。 Selenium WebDriver是Selenium项目的一部分,它提供了一个统一的API,使得开发者可以编写跨浏览器的测试脚本。...
ChromeDriver是一款专为谷歌浏览器(Chrome)设计的自动化测试工具,它允许开发人员或测试工程师使用Selenium WebDriver接口控制浏览器进行自动化操作。标题提到的是ChromeDriver的特定版本——123.0.6312.8600,这...
通过WebDriver,开发者可以编写脚本来模拟用户在浏览器上的各种操作,如点击、输入、导航等,这对于Web应用的自动化测试至关重要。 ChromeDriver是WebDriver的一个实现,专门针对Chrome浏览器。它作为一个服务运行...
《Selenium2自动化测试实战——基于Python语言》是一本针对软件测试工程师,尤其是对Web应用程序自动化测试感兴趣的读者的专业书籍。作者虫师在2016年10月编写了这本书,尽管时间已过去数年,但Selenium作为自动化...