Selenium基础
Selenium是一个开源的和便携式的自动化软件测试工具,用于测试Web应用程序有能力在不同的浏览器和操作系统运行。Selenium真的不是一个单一的工具,而是一套工具,帮助测试者更有效地基于Web的应用程序的自动化
Selenium的IDE(集成开发环境)是一个易于使用的Firefox插件,用于开发Selenium测试案例。它提供了一个图形用户界面,用于记录使用Firefox浏览器,用来学习和使用Selenium用户操作,但它只能用于只用Firefox浏览器不支持其它浏览器。
Selenium RC的工作方式是这样,客户端库使用Selenium RC服务器经过每个Selenium命令来执行通信。然后服务器通过Selenium命令来使用Selenium核心JavaScript命令浏览器。
1. Selenium环境配置:
下载并安装Java 下载地址http://www.oracle.com/technetwork/java/index.html(我用的是jdk1.8.0_121)
下载并配置Eclipse(Neon.2Release (4.6.2)) 下载地址:https://www.eclipse.org/downloads/
配置Firebug、FirePath和IDE :直接在浏览器添加插件即可 Firefox下载地址:http://ftp.mozilla.org/pub/firefox/releases/建议
配置Selenium RC (selenium-2.48.2)地址:http://www.seleniumhq.org/download/#selenium_ide
配置Selenium的webdriver
2.JAVA环境配置
JAVA_HOME
PATH
CLASS_PATH
3.Webdriver testNG环境配置
Java环境
selenium webdriver jar 包
4.firefox 浏览器启动
import org.openqa.selenium.*; //引用包
import org.openqa.selenium.firefox.FirefoxDriver; //引用firefox驱动
WebDriver driver = new FirefoxDriver();
System.setProperty("webdriver.firefox.bin","C:/Program Files(x86)/Mozilla Firefox/firefox.exe"); //默认浏览器可省略
driver.get("http://www.baidu.com");
5.chrome 浏览器启动 (需要驱动)
驱动下载地址:http://chromedriver.storage.googleapis.com/index.html?path=2.7/
http://docs.seleniumhq.org/download/
import org.openqa.selenium.chrome*;
import org.openqa.selenium.chrome.ChromeDriver; //引用chrome驱动
WebDriver driver ;
System.setProperty("webdriver.chrome.driver","C:/ProgramFiles (x86)/Google/Chrome/Application/chromedriver.exe");
driver = new ChromeDriver();
String checkUrl="http://www.baidu.com";
driver.get(checkUrl);
6.IE 浏览器启动(需要驱动)
import org.openqa.selenium.ie.InternetExplorerDriver;
WebDriver driver ;
System.setProperty("webdriver.ie.driver","D:/IEDriver/IEDriverServer.exe");
driver = new InternetExplorerDriver();
String checkUrl="http://www.baidu.com";
driver.get(checkUrl);
driver.quit();
7.在Selenium 的findElement()和findElements()方法通过webdriver和WebElement类提供的帮助进行webdriver定位元素。
1)findElement()方法返回一个基于指定的搜索条件WebElement对象或最终抛出一个异常,如果没有找到符合搜索条件的任何元素。
2)findElements()方法返回WebElements符合搜索条件的列表。如果没有发现的元素,则返回空列表。
driver.manage().timeouts().implicitlyWait(5, TimeUnit.SECONDS);
driver.findElement(By.id("kw")).sendKeys("selenium");
driver.findElement(By.className("s_ipt")).sendKeys("eclipse"); //用getattribute("value")可以向控制台打印
driver.findElement(By.name("wd")).sendKeys("mukewang");
driver.findElement(By.tagName("input")).sendKeys("zhang");
driver.findElement(By.linkText("糯米")).click();
driver.findElement(By.partialLinkText("糯米")).click();
driver.findElement(By.xpath(".//*[@id='kw']")).sendKeys("baidu");
driver.findElement(By.cssSelector("#kw")).sendKeys("langke");
8.层级搜索
WebElement Table = driver.findElement(By.tagName("table"));
List<WebElement> rows =Table.findElments(By.tagName("tr"));
for(WebElement row:rows)
List<WebElement> tds =row.findElements(By.tagName("td"));
for<WebElement td:tds>{
String value=td.getText();
if(value.equals(tr){
System.out.println(value);
})
}
9.元素定位(除xpath):
10.元素定位(Xpath):
11.常用API: