`
uestzengting
  • 浏览: 96546 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

webdriver入门-Java

 
阅读更多

 

如何用webdriver打开一个浏览器,我们常用的浏览器有firefox和IE两种,firefox是selenium支持得比较成熟的浏览器,很多新的特性都会在firefox中体现。但是做页面的测试,启动速度比较慢,启动以后运行速度还是可以接受的。

启动firefox浏览器

新建一个firefoxDriver
如果火狐浏览器没有默认安装在C盘,需要制定其路径

System.setProperty("webdriver.firefox.bin", "D:/Program Files/Mozilla firefox/firefox.exe"); 
WebDriver driver = newFirefoxDriver(); 

启动IE浏览器

//Create a newinstance of the Internet Explorer driver
WebDriver driver = newInternetExplorerDriver ();

启动HtmlUnit浏览器

//Createa new instance of the HtmlUnit driver
WebDriverdriver = new HtmlUnitDriver();

启动Chrome浏览器

          下载ChromeDriver.exe请点这里

//Createa new instance of the Chromedriver

System.setProperty(“webdriver.chrome.driver”, bsPath);
WebDriverdriver = new ChromeDriver();

对web页面进行测试,首先要打开被测试页面的地址(如:http://www.baidu.com),web driver 提供的get方法可以打开一个页面:
// And now use thedriver to visit Google
driver.get(“http://www.baidu.com“);
//也可以调用以下方法
driver.navigate().to(“http://www.baidu.com“);
测试脚本如下
package com.test.ui.demo;
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;
import org.testng.annotations.AfterMethod;
import org.testng.annotations.BeforeMethod;
import org.testng.annotations.Test;

public class TestWebDriver {
private WebDriver driver = null;
private String url = “http://www.baidu.com“;
//每个用例执行前会执行该方法
@BeforeMethod
public void startUp(){
//如果firefox没有安装在c盘需要执行下面这句,否则请注释掉
System.setProperty(“webdriver.firefox.bin”, “D:/Program Files/Mozilla firefox/firefox.exe”);
driver = new FirefoxDriver();
}
//每个用例执行后会执行该方法
@AfterMethod
public void tearDown(){
//退出操作
driver.quit();
driver = null;
}
@Test
public void startTest(){
//打开新窗口
driver.get(url);
}
}

各种浏览器比较↓

Webdirver对浏览器的支持HtmlUnit Driver优点:HtmlUnit Driver不会实际打开浏览器,运行速度很快。对于用FireFox等浏览器来做测试的自动化测试用例,运行速度通常很慢,HtmlUnit Driver无疑是可以很好地解决这个问题。
缺点:它对JavaScript的支持不够好,当页面上有复杂JavaScript时,经常会捕获不到页面元素。
使用:
WebDriver driver = new HtmlUnitDriver();

FireFox Driver优点:FireFox Dirver对页面的自动化测试支持得比较好,很直观地模拟页面的操作,对JavaScript的支持也非常完善,基本上页面上做的所有操作FireFox Driver都可以模拟。
缺点:启动很慢,运行也比较慢,不过,启动之后Webdriver的操作速度虽然不快但还是可以接受的,建议不要频繁启停FireFox Driver。
使用:
WebDriver driver = new FirefoxDriver();
Firefox profile的属性值是可以改变的,比如我们平时可能需要通过代理上网,可以这样修改:
FirefoxProfile profile = new FirefoxProfile();

// 使用代理

profile.setPreference(“network.proxy.type”, 1);

// http协议代理配置

profile.setPreference(“network.proxy.http”, proxyIp);
profile.setPreference(“network.proxy.http_port”, proxyPort);

// 所有协议公用一种代理配置,如果单独配置,这项设置为false,再类似于http的配置

profile.setPreference(“network.proxy.share_proxy_settings”, true);

// 对于localhost的不用代理,这里必须要配置,否则无法和webdriver通讯

profile.setPreference(“network.proxy.no_proxies_on”, “localhost”);

// 以代理方式启动firefox

FirefoxDriver ff  = new FirefoxDriver(profile);

InternetExplorer Driver优点:直观地模拟用户的实际操作,对JavaScript提供完善的支持。
缺点:是所有浏览器中运行速度最慢的,并且只能在Windows下运行,对CSS以及XPATH的支持也不够好。
使用:
WebDriver driver = new InternetExplorerDriver();

元素操作↓

查找元素

使用操作如何找到页面元素Webdriver的findElement方法可以用来找到页面的某个元素,最常用的方法是用id和name查找。下面介绍几种比较常用的方法。
By ID假设页面写成这样:
<input type=”text” name=”userName”  id=”user” />
那么可以这样找到页面的元素:
通过id查找:
WebElement element = driver.findElement(By.id(“user”));
By Name或通过name查找:
WebElement element = driver.findElement(By.name(“userName”));
By XPATH或通过xpath查找:
WebElement element =driver.findElement(By.xpath(“//input[@id='user']“));
By Class Name假设页面写成这样:

<div class=”top”><span>Head</span></div><divclass=”top”><span>HeadName</span></div>
可以通过这样查找页面元素:
List<WebElement>top= driver.findElements(By.className(“top”));

By Link Text假设页面元素写成这样:
<a href=”http://www.baidu.com”>baidu</a>>
那么可以通过这样查找:
WebElement baidu=driver.findElement(By.linkText(“baidu”));

输入框传值

输入框(text field or textarea)   找到输入框元素:
WebElement element = driver.findElement(By.id(“passwd-id”));
在输入框中输入内容:
element.sendKeys(“test”);
将输入框清空:
element.clear();
获取输入框的文本内容:
element.getText();

下拉菜单

下拉选择框(Select)找到下拉选择框的元素:
Select select = new Select(driver.findElement(By.id(“select”)));
选择对应的选择项:select.selectByVisibleText(“testName”);

select.selectByValue(“name”);
不选择对应的选择项:
select.deselectAll();
select.deselectByValue(“name”);
select.deselectByVisibleText(“姓名”);
或者获取选择项的值:
select.getAllSelectedOptions();
select.getFirstSelectedOption();

单选框

单选项(Radio Button)找到单选框元素:
WebElement sex=driver.findElement(By.id(“sex”));

选择某个单选项:

sex.click();
清空某个单选项:
sex.clear();

判断某个单选项是否已经被选择:

sex.isSelected();

复选框

多选项(checkbox)多选项的操作和单选的差不多:
WebElement area =driver.findElement(By.id(“area .”));
area .click();
area .clear();
area .isSelected();
area .isEnabled();

按钮

按钮(button)找到按钮元素:
WebElement saveButton = driver.findElement(By.id(“save”));

点击按钮:

saveButton.click();

判断按钮是否enable:

saveButton.isEnabled ();

左右选择框也就是左边是可供选择项,选择后移动到右边的框中,反之亦然。例如:

Select name= new Select(driver.findElement(By.id(“name”)));
name.selectByVisibleText(“hellen”);
WebElement addName=driver.findElement(By.id(“addButton”));
addName.click();

弹出框

弹出对话框(Popup dialogs)Alert alert = driver.switchTo().alert();
alert.accept();
alert.dismiss();
alert.getText();

表单提交

表单(Form)Form中的元素的操作和其它的元素操作一样,对元素操作完成后对表单的提交可以:
WebElement sub= driver.findElement(By.id(“sub”));
sub.click();

sub.submit();//只适合于表单的提交

上传附件

上传文件 (Upload File)上传文件的元素操作:
WebElement picFile = driver.findElement(By.id(“picFile ”));
String filePath = “d:\\report\\600x600x0.jpg”;
picFile .sendKeys(filePath);

多窗口切换

Windows 或 Frames之间的切换

首先切换到默认的frame
driver.switchTo().defaultContent();
切换到某个frame:
driver.switchTo().frame(“leftFrame”);
从一个frame切换到另一个frame:
driver.switchTo().frame(“mainFrame”);
切换到某个window:
driver.switchTo().window(“windowName”);

导航

导航 (Navigationand History)打开一个新的页面:
driver.navigate().to(“http://www.baidu.com”);

通过历史导航返回原页面:
driver.navigate().forward();
driver.navigate().back();

以上为简单介绍了一下webDriver中常遇到的操作,有问题可以查阅官方的API文档

分享到:
评论

相关推荐

    Selenium WebDriver实战(JAVA版本)

    selenium webdriver是web自动化的一本经典著作,吴老集合python java不同版本。本资源为java版本,内容较新,无论是入门还是提升都有很大帮助。

    selenium-webdriver从入门到提高

    本书的特点是包含了多种编程语言的实践篇幅,例如Python篇、Ruby篇和Java篇,这表明Selenium-WebDriver支持多种编程语言,让不同语言背景的开发者都能有效地利用这个工具进行Web应用的自动化测试。通过这种方式,...

    Selenium 2.0 and WebDriver - the 5 minute getting started guide

    - **selenium-java-2.0b3.jar**: 这是Selenium Java绑定的核心库,包含了Selenium 2.0的所有Java API。 - **guava-r08.jar**: Google的Guava库,提供了一些基础的Java工具类,Selenium可能依赖于它的一些功能。 - **...

    webdriver-学习

    本篇将详细介绍如何快速入门 WebDriver 的使用。 A. 快速开始 首先,你需要安装以下组件: 1. 安装 Firefox 浏览器,确保版本为10。Firefox 是 WebDriver 支持的浏览器之一,但你也可以选择其他浏览器,如 Chrome...

    Selenium WebDriver实战宝典(吴晓华)

    本书是一本从入门到精通模式的Selenium WebDriver实战经验分享书籍。全书共分为四个部分:第1部分基础篇主要讲解自动化测试相关的基础理论、WebDriver 环境安装、单元测试工具的使用方法以及 WebDrvier的入门使用...

    selenium2初学者快速入门(Java)

    - `selenium-java-2.45.0.zip` #### 六、结语 Selenium2作为一款功能强大的自动化测试工具,不仅简化了测试流程,还提高了测试效率。对于初学者而言,掌握Selenium2的基础知识和使用方法至关重要。通过本文的学习...

    startUsingSeleniumWebDriver:支持在线课程的源代码开始将Selenium WebDriver与Java结合使用-java source code

    支持使用Selenium WebDriver和Java入门的源代码 只有在人们按照说明进行操作时遇到问题或犯下他们无法弄清楚的非常简单的错误时,才真正上传源代码。 如果您无法开始使用Firefox,请阅读下面的注释以及源代码注释...

    Selenide-cucumber-allure-reports-java:使用Selenide,BDD(Cucumber),Browserstack和Allure报告进行自动化测试

    SelenideCucumber魅力报告...先决条件入门-安装Git -5分钟内完成Maven如何安装此项目git clone https://github.com/Pavelya/Selenide-cucumber-allure-reports-java.git 运行测试-命令行模式cd to project path Run w

    selenium2初学者快速入门 java版

    - 下载`selenium-java-2.45.0.zip`,用于模拟Selenium客户端。 **4. 浏览器驱动** - 对于Chrome浏览器,需要下载对应的ChromeDriver。 - 确保浏览器驱动版本与浏览器版本相匹配。 #### 五、实践指南 在完成环境...

    seleniumwebdriver

    - **定义**: Selenium WebDriver 是一种用于自动化 Web 测试的工具,能够直接与浏览器交互,并且支持多种编程语言,例如 Java、Python、C# 和 Ruby 等。 - **特性**: 它可以模拟用户的行为,如点击按钮、填写表单、...

    selenium2初学者快速入门(Java).docx

    在 Java 中使用 Selenium,你需要导入相应的库,并创建 WebDriver 对象来驱动浏览器。例如,对于 IE: ```java import org.openqa.selenium.By; import org.openqa.selenium.WebDriver; import org.openqa.selenium...

    java和selenium自动化爬取超简单实例入门参考

    本文将详细介绍如何使用 Java 和 Selenium 进行自动化爬虫的入门实践,帮助初学者快速掌握这一技能。 Selenium 是一个用于 Web 应用程序测试的开源工具,但它同样适用于网页爬虫的开发。它支持多种编程语言,包括 ...

    Selenium-cucumber-allure-reports-java:使用Selenium,BDD(Cucumber)和Allure报告进行自动化测试

    入门 这些说明将为您提供在本地计算机上运行并运行的项目的副本,以进行开发和测试。 先决条件 Maven吉特 正在安装 克隆仓库以获取工作项目 运行测试-命令行模式 cd到项目路径 mvn clean test -Dbrowser = chrome -...

    Swd.StarterJ:Java中具有PageObjects支持的简约Selenium WebDriver入门套件

    ← -= SWD Starter Java = → :red_apple: 安装先决条件 为了下载并开始使用该项目,您必须安装: 待定 :red_triangle_pointed_down: 下载SWD页面记录器 Doxygen文档生成器 只需运行SWD.StarterJ\doxygen_run.cmd...

    selenium webdriver学习

    通过导入必要的包,如`org.openqa.selenium.By`、`org.openqa.selenium.WebDriver`、`org.openqa.selenium.WebElement` 和 `org.openqa.selenium.firefox.FirefoxDriver`,创建一个简单的Java类来演示WebDriver的...

    selenium 学习资料

    selenium学习资料:Selenium测试实践_基于电子商务平台.pdf,selenium_webdriver-java.pdf,selenium2.0_中文帮助文档.pdf,Selenium定位大全01.pdf,基于Selenium 2的自动化测试 从入门到精通PDF电子书下载 带书签...

    selenium webdriver_第三版

    而自动化脚本入门简单。我觉得自动化是方向。  关于自动化又帮了你一段路,但是,依然还有很多问题没有解决;比如,测试用例的多线程处理。目前的结构还不够完美,在脚本运行中,我们可以捕捉更多的信息,更...

    selenium webdriver aip部分介绍

    本书是我翻译自,保留了和web测试有关的一些章节,去除了...书有所用的代码我是用java来实现的,对于了解了我第一本书初学者指南&gt;的一定代码基础的同学试读这本书会有比较好的入门提高。 书中的例子请放到d:\demo目录下

    jBrowserDriver是一个纯Java编写的可编程嵌入式的浏览器驱动基于WebKit

    总的来说,jBrowserDriver是Java开发者的一个强大工具,它结合了WebKit的高效渲染和Selenium WebDriver的易用性,提供了在各种场景下对Web应用进行自动化控制和测试的能力。对于需要无头浏览器自动化的企业和开发者...

Global site tag (gtag.js) - Google Analytics