- 浏览: 307475 次
- 性别:
- 来自: 上海
文章分类
最新评论
-
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 1003selenium 官网被墙, 看不了doc, 可以去下面这个 ... -
selenium webdriver学习(二十二)------------XVFB实现selenium在linux上无界面运行安装篇
2015-03-12 12:25 13744selenium在linux上无界面 ... -
PhantomJSDriver怎么设置在console里不输出运行信息
2014-11-10 15:50 2289每次运行PhantomJSDriver都输出一堆的INFO、 ... -
selenium webdriver 常见问题
2012-07-10 18:31 0注我下面说到的webdriver就是指selenium web ... -
selenium和webdriver合并的原因
2012-07-04 10:48 3309selenium和webdriver合并的原因,传送门 -
selenium webdriver学习(二十一)------------Selenium Grid深入学习
2012-06-29 18:35 4770应网友要求写一个用Selenium Grid控制多系统多浏览器 ... -
selenium webdriver学习(二十)------------Selenium Grid
2012-06-27 18:37 5742Selenium Grid允许同时并行 ... -
selenium webdriver学习(十九)-------我们的构建文件CrazyFunBuild (译)
2012-06-14 10:50 2236原文:CrazyFunBuild ... -
selenium webdriver学习(十八)----------构建webdriver
2012-05-22 16:03 4307准备环境 对所有版 ... -
selenium webdriver学习(十七)----------把selenium项目同步到本地eclipse
2012-05-11 16:00 3905这里主要是想把selenium的整个项目同步到eclipse的 ... -
selenium webdriver学习(十六)----------用selenium webdriver实现selenium RC中的类似的方法
2012-05-11 15:35 4709最近想总结一下学习selenium webdriver的情况, ... -
selenium webdriver学习(十五)------------如何处理FirefoxProfile
2012-04-10 18:29 8995这一节主要涉及 selenium webdriver处理Fir ... -
selenium webdriver学习(十四)------------如何处理table
2012-04-07 09:15 7392以前在selenium RC 里面有一个getTable方法, ... -
selenium webdriver学习(十三)------------如何利用Actions类模拟鼠标和键盘的操作
2012-03-29 12:36 11986在selenium webdriver学习(十)------- ... -
selenium webdriver学习(十二)------------如何利用selenium-webdriver截图
2012-03-26 16:29 5830在自动化测试中常常会用到截图功能。最近用了一下selenium ... -
学习selenium-webdriver一些网站
2012-03-20 16:49 0http://www.aosabook.org/en/sele ... -
selenium webdriver学习(十一)------------如何等待页面元素加载完成
2012-03-14 18:25 15388web的自动化测试中,我们经常会遇到这样一种情况:当我们的程 ... -
selenium webdriver学习(十)------------如何把一个元素拖放到另一个元素里面
2012-03-13 13:09 5842Q群里有时候会有人问,selenium webdriver怎 ... -
selenium webdriver学习(九)------------如何操作cookies
2012-03-12 17:45 5154Web 测试中我们经常会接触到Cookies,一个Cookie ... -
selenium webdriver学习(八)------------如何操作select下拉框
2012-03-12 16:06 10122下面我们来看一下selenium webdriver是如何来处 ...
相关推荐
1.2 selenium webdriver学习(二)————对浏览器的简单操作 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 1.3 selenium webdriver学习(三)------------执行js脚本 . . . . . . . . . . . . . ...
Selenium WebDriver 入门知识、Selenium Python脚本、使用unittest 编写单元测试、生成HTML格式的测试报告、元素定位、Selenium Python API 介绍、元素等待机制、跨浏览器测试、移动端测试、编写一个iOS测试脚本、...
Selenium Python 提供了一个简单的API 便于我们使用 Selenium WebDriver编写 功能/验收测试。 通过Selenium Python的API,你可以直观地使用所有的 Selenium WebDriver 功能 。Selenium Python提供了一个很方便的接口...
from selenium import webdriver 2.浏览器获取驱动 需要下载跟chrome浏览器相匹配的驱动driverchrome.exe,详情见:根据电脑浏览器的版本下载相应的驱动chromedriver.exe,环境变量的配置,详情见这里Window 下配置...
应用程序时——尤其是在持续集成测试的上下文中——您需要有一个工具来远程控制 Web 浏览器。 这对于开发和测试面向浏览器的 ClojureScript 应用程序和*.cljs或*.cljc库*.cljc 。 虽然是 Selenium 的一个很好的 ...
Selenium是针对Web应用的测试框架,支持多种浏览器和多种编程语言。Selenium 2的主要新功能是集成了...Selenium RC在浏览器中运行JavaScript应用,而WebDriver通过原生浏览器支持或者浏览器扩展直接控制浏览器。
Selenium测试直接运行在浏览器中,就像真正的用户在操作一样。支持的浏览器包括IE、Mozilla Firefox、Google Chrome等。这个工具的主要功能包括:测试与浏览器的兼容性——测试你的应用程序看是否能够很好得工作在...
Selenium测试直接运行在浏览器中,就像真正的用户在操作一样。支持的浏览器包括IE、Mozilla Firefox、Google Chrome等。这个工具的主要功能包括:测试与浏览器的兼容性——测试你的应用程序看是否能够很好得工作在...
Selenium测试直接运行在浏览器中,就像真正的用户在操作一样。支持的浏览器包括IE、Mozilla Firefox、Google Chrome等。这个工具的主要功能包括:测试与浏览器的兼容性——测试你的应用程序看是否能够很好得工作在...
Selenium测试直接运行在浏览器中,就像真正的用户在操作一样。支持的浏览器包括IE、Mozilla Firefox、Google Chrome等。这个工具的主要功能包括:测试与浏览器的兼容性——测试你的应用程序看是否能够很好得工作在...
Selenium测试直接运行在浏览器中,就像真正的用户在操作一样。支持的浏览器包括IE(7, 8, 9, 10, 11),Mozilla Firefox,Safari,Google Chrome,Opera等。这个工具的主要功能包括:测试与浏览器的兼容性——测试你...
本文实例讲述了Selenium控制浏览器常见操作。分享给大家供大家参考,具体如下: Selenium是一个用于Web应用程序测试的工具。Selenium测试直接运行在浏览器中,就像真正的用户在操作一样。支持的浏览器包括IE(7, 8, ...
Selenium测试直接运行在浏览器中,就像真正的用户在操作一样。支持的浏览器包括IE、Mozilla Firefox、Mozilla Suite等。这个工具的主要功能包括:测试与浏览器的兼容性——测试你的应用程序看是否能够很好得工作在...
jbrowserdriver.zip,与Selenium WebDriver规范兼容的可编程嵌入式Web浏览器驱动程序——快速、无头、基于WebKit、100%纯Java、无浏览器依赖性;与Selenium WebDriver规范兼容的可编程嵌入式Web浏览器驱动程序——...
安装selenium 打开命令控制符输入:pip...Selenium IDE 是嵌入到Firefox 浏览器中的一个插件,实现简单的浏览器操 作的录制与回放功能,IDE 录制的脚本可以可以转换成多种语言,从而帮助我们快速的开发脚本,下载地址:...
学习selenium的时候经常用扫的定位方式WebDriver定位方式,但是一些Windows的窗口就无力了,这时候可以用js定位 使用js定位的时候是用DOM树定位方式 eg: document.getElementById("su"); 这里就可以看出来,和...
Selenium测试直接运行在浏览器中,就像真正的用户在操作一样。支持的浏览器包括IE(7, 8, 9, 10, 11),Mozilla Firefox,Safari,Google Chrome,Opera等。这个工具的主要功能包括:测试与浏览器的兼容性——测试你...
这个工具的主要功能包括:测试与浏览器的兼容性——测试你的应用程序看是否能够很好得工作在不同浏览器和操作系统之上。测试系统功能——创建回归测试检验软件功能和用户需求。支持自动录制动作和自动生成 .Net、...