`

selenium webdriver学习(二)————对浏览器的简单操作

 
阅读更多

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 webdriver 学习

    1.2 selenium webdriver学习(二)————对浏览器的简单操作 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 1.3 selenium webdriver学习(三)------------执行js脚本 . . . . . . . . . . . . . ...

    Selenium自动化测试:基于Python语言.azw3

    Selenium WebDriver 入门知识、Selenium Python脚本、使用unittest 编写单元测试、生成HTML格式的测试报告、元素定位、Selenium Python API 介绍、元素等待机制、跨浏览器测试、移动端测试、编写一个iOS测试脚本、...

    selenium+python实现自动化登录的方法

    Selenium Python 提供了一个简单的API 便于我们使用 Selenium WebDriver编写 功能/验收测试。 通过Selenium Python的API,你可以直观地使用所有的 Selenium WebDriver 功能 。Selenium Python提供了一个很方便的接口...

    Python爬虫——selenium模拟京东网站登录(一)

    from selenium import webdriver 2.浏览器获取驱动 需要下载跟chrome浏览器相匹配的驱动driverchrome.exe,详情见:根据电脑浏览器的版本下载相应的驱动chromedriver.exe,环境变量的配置,详情见这里Window 下配置...

    仿知乎java源码-webica:SeleniumWebDriver的Clojure绑定

    应用程序时——尤其是在持续集成测试的上下文中——您需要有一个工具来远程控制 Web 浏览器。 这对于开发和测试面向浏览器的 ClojureScript 应用程序和*.cljs或*.cljc库*.cljc 。 虽然是 Selenium 的一个很好的 ...

    Selenium2 Python

    Selenium是针对Web应用的测试框架,支持多种浏览器和多种编程语言。Selenium 2的主要新功能是集成了...Selenium RC在浏览器中运行JavaScript应用,而WebDriver通过原生浏览器支持或者浏览器扩展直接控制浏览器。

    selenium 3.11

    Selenium测试直接运行在浏览器中,就像真正的用户在操作一样。支持的浏览器包括IE、Mozilla Firefox、Google Chrome等。这个工具的主要功能包括:测试与浏览器的兼容性——测试你的应用程序看是否能够很好得工作在...

    selenium 3.8.1

    Selenium测试直接运行在浏览器中,就像真正的用户在操作一样。支持的浏览器包括IE、Mozilla Firefox、Google Chrome等。这个工具的主要功能包括:测试与浏览器的兼容性——测试你的应用程序看是否能够很好得工作在...

    selenium 3.5.1

    Selenium测试直接运行在浏览器中,就像真正的用户在操作一样。支持的浏览器包括IE、Mozilla Firefox、Google Chrome等。这个工具的主要功能包括:测试与浏览器的兼容性——测试你的应用程序看是否能够很好得工作在...

    selenium-3.141.zip

    Selenium测试直接运行在浏览器中,就像真正的用户在操作一样。支持的浏览器包括IE、Mozilla Firefox、Google Chrome等。这个工具的主要功能包括:测试与浏览器的兼容性——测试你的应用程序看是否能够很好得工作在...

    python + selenium2

    Selenium测试直接运行在浏览器中,就像真正的用户在操作一样。支持的浏览器包括IE(7, 8, 9, 10, 11),Mozilla Firefox,Safari,Google Chrome,Opera等。这个工具的主要功能包括:测试与浏览器的兼容性——测试你...

    Selenium控制浏览器常见操作示例

    本文实例讲述了Selenium控制浏览器常见操作。分享给大家供大家参考,具体如下: Selenium是一个用于Web应用程序测试的工具。Selenium测试直接运行在浏览器中,就像真正的用户在操作一样。支持的浏览器包括IE(7, 8, ...

    selenium 3.0.0

    Selenium测试直接运行在浏览器中,就像真正的用户在操作一样。支持的浏览器包括IE、Mozilla Firefox、Mozilla Suite等。这个工具的主要功能包括:测试与浏览器的兼容性——测试你的应用程序看是否能够很好得工作在...

    dsl-model-0.4.0.zip

    jbrowserdriver.zip,与Selenium WebDriver规范兼容的可编程嵌入式Web浏览器驱动程序——快速、无头、基于WebKit、100%纯Java、无浏览器依赖性;与Selenium WebDriver规范兼容的可编程嵌入式Web浏览器驱动程序——...

    selenium python 实现基本自动化测试的示例代码

    安装selenium 打开命令控制符输入:pip...Selenium IDE 是嵌入到Firefox 浏览器中的一个插件,实现简单的浏览器操 作的录制与回放功能,IDE 录制的脚本可以可以转换成多种语言,从而帮助我们快速的开发脚本,下载地址:...

    如何在selenium中使用js实现定位

    学习selenium的时候经常用扫的定位方式WebDriver定位方式,但是一些Windows的窗口就无力了,这时候可以用js定位 使用js定位的时候是用DOM树定位方式 eg: document.getElementById("su"); 这里就可以看出来,和...

    Python3爬虫技术文档(三)——动态页面数据获取

    Selenium测试直接运行在浏览器中,就像真正的用户在操作一样。支持的浏览器包括IE(7, 8, 9, 10, 11),Mozilla Firefox,Safari,Google Chrome,Opera等。这个工具的主要功能包括:测试与浏览器的兼容性——测试你...

    Selenium(Python web测试工具)基本用法详解

    这个工具的主要功能包括:测试与浏览器的兼容性——测试你的应用程序看是否能够很好得工作在不同浏览器和操作系统之上。测试系统功能——创建回归测试检验软件功能和用户需求。支持自动录制动作和自动生成 .Net、...

Global site tag (gtag.js) - Google Analytics