Selenium使用教程
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
quit();关闭所有页面
close();关闭本次执行打开的页面
driver.get("http://www.baidu.com/");
driver.navigate().to("http://www.baidu.com/");
Navigationnav= driver.navigate();
nav.to("http://www.baidu.com/");
System.setProperty("webdriver.firefox.bin","D:\\ProgramFiles\\Mozilla Firefox\\firefox.exe");
//打开默认路径的firefox(路径指的是firefox的安装路径)
WebDriver diver = new FirefoxDriver();
c、使用索引定位元素,初始为1
driver.findElement(By.xpath("//input[2]"))返回查找到的第二个符合条件的元素
d、使用XPATH及属性值定位元素
driver.findElement(By.xpath("//input[@id='username']"));
driver.findElement(By.xpath("//img[@alt='flowr']"));
1
WebElement ele=driver.findElement(By.xpath("//input[@*='fuck']"));//匹配所有input元素中含有属性的值为fuck的元素
ends-with driver.findElement(By.xpath("//input[ends-with(@id,'name')]"))
contains() driver.findElement(By.xpath("//input[contains(@id,"ernam")]")
e、使用任意值来匹配属性及元素
缺点:启动很慢,运行也比较慢,不过,启动之后Webdriver的操作速度虽然不快但还是可以接受的,建议不要频繁启停FireFox Driver。
使用:
WebDriver driver = new FirefoxDriver();
如ff浏览器路径找不到,可显示指定路径
方法一
//打开指定路径的firefox,方法1
import org.openqa.selenium.firefox.FirefoxDriver;
import org.openqa.selenium.support.ui.ExpectedCondition;
import org.openqa.selenium.support.ui.WebDriverWait;
使用XPATH有如下几种方法定位元素(相比CSS选择器,方法稍微多一点):
a、通过绝对路径定位元素(不推荐!)
driver.findElement(By.xpath("/html/body/div/form/input"))
b、通过相对路径定位元素
driver.findElement(By.xpath("//input"))返回查找到的第一个符合条件的元素
缺点:它对JavaScript的支持不够好,当页面上有复杂JavaSFra Baidu bibliotekript时,经常会捕获不到页面元素。
使用:
WebDriver driver = new HtmlUnitDriver();
2.2 FireFox Driver
优点:FireFox Dirver对页面的自动化测试支持得比较好,很直观地模拟页面的操作,对JavaScript的支持也非常完善,基本上页面上做的所有操作FireFox Driver都可以模拟。
//Close the browser
driver.quit();
}
}
第2
2.1 HtmlUnit Driver
优点:HtmlUnit Driver不会实际打开浏览器,运行速度很快。对于用FireFox等浏览器来做测试的自动化测试用例,运行速度通常很慢,HtmlUnit Driver无疑是可以很好地解决这个问题。
public Booleanapply(WebDriver d) {
returnd.getTitle().toLowerCase().startsWith("cheese!");
}
});
// Should see:"cheese! - Google Search"
System.out.println("Page title is: " + driver.getTitle());
打开firefox浏览器:
//Create a newinstance of the Firefox driver
WebDriver driver = newFirefoxDriver();
打开IE浏览器
//Create a newinstance of the Internet Explorer driver
// Google's search isrendered dynamically with JavaScript.
// Wait for the pageto load, timeout after 10 seconds
(newWebDriverWait(driver, 10)).until(new ExpectedCondition<Boolean>() {
public class Selenium2Example {
public static voidmain(String[] args) {
// Create a newinstance of the Firefox driver
// Notice that theremainder of the code relies on the interface,
我们常用的浏览器有firefox和IE两种,firefox是selenium支持得比较成熟的浏览器。但是做页面的测试,速度通常很慢,严重影响持续集成的速度,这个时候建议使用HtmlUnit,不过HtmlUnitDirver运行时是看不到界面的,对调试就不方便了。使用哪种浏览器,可以做成配置项,根据需要灵活配置。
1.3 打开测试页面
对页面对测试,首先要打开被测试页面的地址(如:http://www.google.com),web driver提供的get方法可以打开一个页面:
// And now use thedriver to visit Google
driver.get("http://www.google.com");
WebDriver driver1 = new FirefoxDriver(firefoxbin,null);
;
2.3
优点:直观地模拟用户的实际操作,对JavaScript提供完善的支持。
缺点:是所有浏览器中运行速度最慢的,并且只能在Windows下运行,对CSS以及XPATH的支持也不够好。
使用:
可以合并为一句
driver.navigate().to("http://www.baidu.com/");
第3
如果是链接,采用Link Text,
其他控件采用id,name,classname
文本信息采用css selector
3.1 如何找到页面元素
Webdriver的findElement方法可以用来找到页面的某个元素,最常用的方法是用id和name查找。下面介绍几种比较常用的方法。
Selenium2.0帮助文档
第
1.1 下载selenium2.0的lib包
http://code.google.com/p/selenium/downloads/list
官方UserGuide:http://seleniumhq.org/docs/
1.2 用webdriver打开一个浏览器
方法二:
//打开指定路径的firefox,方法2
File pathToFirefoxBinary = new File("D:\\Program Files\\Mozilla Firefox\\firefox.exe");
FirefoxBinary firefoxbin = new FirefoxBinary(pathToFirefoxBinary);
WebDriver driver = new InternetExplorerDriver();
2.4
访问链接、获取Title、获取url
dr.get(url); //访问链接
dr.getTitle(); //获取当前的Title
dr.getCurrentUrl(); //获取当前的url
关闭浏览器
driver.findElement(By.xpath("//input[@id='username' and @name='userID']"));
starts-with() driver.findElement(By.xpath("//input[starts-with(@id,'user')]"))
3.1.2 By Name
或通过name查找:
WebElement element = driver.findElement(By.name("passwd"));
3.1.3 By XPATH
或通过xpath查找:
WebElement element =driver.findElement(By.xpath("//input[@id='passwd-id']"));
// driver.navigate().to("http://www.google.com");
// Find the text inputelement by its name
WebElement element =driver.findElement(By.name("q"));
// Enter something tosearch for
3.1.1 By ID
假设页面写成这样:
<input type="text" name="passwd"id="passwd-id" />
那么可以这样找到页面的元素:
通过id查找:
WebElement element = driver.findElement(By.id("passwd-id"));
1.4 GettingStarted
package org.openqa.selenium.example;
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
WebDriverdriver = new HtmlUnitDriver();
打开Chrome浏览器
System.setProperty("webdriver.chrome.driver", "D:\\admin\\chromedriver.exe");
driver = new ChromeDriver();
System.setProperty("webdriver.ie.driver","D:\\admin\\IEDriverServer.exe");
driver = new InternetExplorerDriver();
打开HtmlUnit浏览器
//Createa new instance of the Internet Explorer driver
// not the implementation.
WebDriver driver = newFirefoxDriver();
// And now use this tovisit Google
driver.get("http://www.google.com");
// Alternatively thesame thing can be done like this
element.sendKeys("Cheese!");
// Now submit the form.WebDriver will find the form for us from the element
element.submit();
// Check the title ofthe page
System.out.println("Page title is: " + driver.getTitle());
close();关闭本次执行打开的页面
driver.get("http://www.baidu.com/");
driver.navigate().to("http://www.baidu.com/");
Navigationnav= driver.navigate();
nav.to("http://www.baidu.com/");
System.setProperty("webdriver.firefox.bin","D:\\ProgramFiles\\Mozilla Firefox\\firefox.exe");
//打开默认路径的firefox(路径指的是firefox的安装路径)
WebDriver diver = new FirefoxDriver();
c、使用索引定位元素,初始为1
driver.findElement(By.xpath("//input[2]"))返回查找到的第二个符合条件的元素
d、使用XPATH及属性值定位元素
driver.findElement(By.xpath("//input[@id='username']"));
driver.findElement(By.xpath("//img[@alt='flowr']"));
1
WebElement ele=driver.findElement(By.xpath("//input[@*='fuck']"));//匹配所有input元素中含有属性的值为fuck的元素
ends-with driver.findElement(By.xpath("//input[ends-with(@id,'name')]"))
contains() driver.findElement(By.xpath("//input[contains(@id,"ernam")]")
e、使用任意值来匹配属性及元素
缺点:启动很慢,运行也比较慢,不过,启动之后Webdriver的操作速度虽然不快但还是可以接受的,建议不要频繁启停FireFox Driver。
使用:
WebDriver driver = new FirefoxDriver();
如ff浏览器路径找不到,可显示指定路径
方法一
//打开指定路径的firefox,方法1
import org.openqa.selenium.firefox.FirefoxDriver;
import org.openqa.selenium.support.ui.ExpectedCondition;
import org.openqa.selenium.support.ui.WebDriverWait;
使用XPATH有如下几种方法定位元素(相比CSS选择器,方法稍微多一点):
a、通过绝对路径定位元素(不推荐!)
driver.findElement(By.xpath("/html/body/div/form/input"))
b、通过相对路径定位元素
driver.findElement(By.xpath("//input"))返回查找到的第一个符合条件的元素
缺点:它对JavaScript的支持不够好,当页面上有复杂JavaSFra Baidu bibliotekript时,经常会捕获不到页面元素。
使用:
WebDriver driver = new HtmlUnitDriver();
2.2 FireFox Driver
优点:FireFox Dirver对页面的自动化测试支持得比较好,很直观地模拟页面的操作,对JavaScript的支持也非常完善,基本上页面上做的所有操作FireFox Driver都可以模拟。
//Close the browser
driver.quit();
}
}
第2
2.1 HtmlUnit Driver
优点:HtmlUnit Driver不会实际打开浏览器,运行速度很快。对于用FireFox等浏览器来做测试的自动化测试用例,运行速度通常很慢,HtmlUnit Driver无疑是可以很好地解决这个问题。
public Booleanapply(WebDriver d) {
returnd.getTitle().toLowerCase().startsWith("cheese!");
}
});
// Should see:"cheese! - Google Search"
System.out.println("Page title is: " + driver.getTitle());
打开firefox浏览器:
//Create a newinstance of the Firefox driver
WebDriver driver = newFirefoxDriver();
打开IE浏览器
//Create a newinstance of the Internet Explorer driver
// Google's search isrendered dynamically with JavaScript.
// Wait for the pageto load, timeout after 10 seconds
(newWebDriverWait(driver, 10)).until(new ExpectedCondition<Boolean>() {
public class Selenium2Example {
public static voidmain(String[] args) {
// Create a newinstance of the Firefox driver
// Notice that theremainder of the code relies on the interface,
我们常用的浏览器有firefox和IE两种,firefox是selenium支持得比较成熟的浏览器。但是做页面的测试,速度通常很慢,严重影响持续集成的速度,这个时候建议使用HtmlUnit,不过HtmlUnitDirver运行时是看不到界面的,对调试就不方便了。使用哪种浏览器,可以做成配置项,根据需要灵活配置。
1.3 打开测试页面
对页面对测试,首先要打开被测试页面的地址(如:http://www.google.com),web driver提供的get方法可以打开一个页面:
// And now use thedriver to visit Google
driver.get("http://www.google.com");
WebDriver driver1 = new FirefoxDriver(firefoxbin,null);
;
2.3
优点:直观地模拟用户的实际操作,对JavaScript提供完善的支持。
缺点:是所有浏览器中运行速度最慢的,并且只能在Windows下运行,对CSS以及XPATH的支持也不够好。
使用:
可以合并为一句
driver.navigate().to("http://www.baidu.com/");
第3
如果是链接,采用Link Text,
其他控件采用id,name,classname
文本信息采用css selector
3.1 如何找到页面元素
Webdriver的findElement方法可以用来找到页面的某个元素,最常用的方法是用id和name查找。下面介绍几种比较常用的方法。
Selenium2.0帮助文档
第
1.1 下载selenium2.0的lib包
http://code.google.com/p/selenium/downloads/list
官方UserGuide:http://seleniumhq.org/docs/
1.2 用webdriver打开一个浏览器
方法二:
//打开指定路径的firefox,方法2
File pathToFirefoxBinary = new File("D:\\Program Files\\Mozilla Firefox\\firefox.exe");
FirefoxBinary firefoxbin = new FirefoxBinary(pathToFirefoxBinary);
WebDriver driver = new InternetExplorerDriver();
2.4
访问链接、获取Title、获取url
dr.get(url); //访问链接
dr.getTitle(); //获取当前的Title
dr.getCurrentUrl(); //获取当前的url
关闭浏览器
driver.findElement(By.xpath("//input[@id='username' and @name='userID']"));
starts-with() driver.findElement(By.xpath("//input[starts-with(@id,'user')]"))
3.1.2 By Name
或通过name查找:
WebElement element = driver.findElement(By.name("passwd"));
3.1.3 By XPATH
或通过xpath查找:
WebElement element =driver.findElement(By.xpath("//input[@id='passwd-id']"));
// driver.navigate().to("http://www.google.com");
// Find the text inputelement by its name
WebElement element =driver.findElement(By.name("q"));
// Enter something tosearch for
3.1.1 By ID
假设页面写成这样:
<input type="text" name="passwd"id="passwd-id" />
那么可以这样找到页面的元素:
通过id查找:
WebElement element = driver.findElement(By.id("passwd-id"));
1.4 GettingStarted
package org.openqa.selenium.example;
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
WebDriverdriver = new HtmlUnitDriver();
打开Chrome浏览器
System.setProperty("webdriver.chrome.driver", "D:\\admin\\chromedriver.exe");
driver = new ChromeDriver();
System.setProperty("webdriver.ie.driver","D:\\admin\\IEDriverServer.exe");
driver = new InternetExplorerDriver();
打开HtmlUnit浏览器
//Createa new instance of the Internet Explorer driver
// not the implementation.
WebDriver driver = newFirefoxDriver();
// And now use this tovisit Google
driver.get("http://www.google.com");
// Alternatively thesame thing can be done like this
element.sendKeys("Cheese!");
// Now submit the form.WebDriver will find the form for us from the element
element.submit();
// Check the title ofthe page
System.out.println("Page title is: " + driver.getTitle());