初始化对象
webDriver driver = new ChromeDriver();
driver.get("http://itest.info");
String title = driver.getTitle();
driver.close()
验证浏览器驱动
webdriver driver = new ChromeDriver();
.......................FirefoxDriver();
定位方式
- id
- name
- class name
- tag name
- link text
- partial link text
- xpath
- css selector
这8种定位方式在java selenium种所对应的方法为:
- driver.findElement(By.id())
- driver.findElement(By.name())
- driver.fidnElement(By.className())
- driver.fidnElement(By.tagName())
- driver.findElement(By.linkText())
- driver.findElement(By.partialLinkText())
- driver.findElement(By.xpath())
- driver.findElement(By.cssSelector())
控制浏览器窗口大小
webDriver提供了mange().window().setSize()方法来设置浏览器的大小。
- maximize()设置浏览器最大化
- setSize()设置浏览器宽高
import org.openqa.selenium.Dimension;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;
public class Browser {
public static void main(String[] args) throws InterruptedException {
WebDriver driver= new ChromeDriver();
driver.get("https://www.baidu.cn");
driver.manage().window().maximize();
Thread.sleep(2000);
driver.get("https://m.baidu.cn");
driver.manage().window().setSize(new Dimension(480, 800));
Thread.sleep(2000);
driver.quit();
}
}
在PC端执行自动化测试脚本大多情况下是希望浏览器在全屏幕模式下执行,那么可以使用maximize()方法使打开的浏览器全屏显示,其用法与setSize()相同,但它不需要任何参数。
控制浏览器后退、前进
webDriver也提供了对应的back()和forward()方法来模拟后退前进按钮。
- back()模拟浏览器后退按钮
- forward()模拟浏览器前进按钮
- driver.navigate().back()
- driver.navigate().forward()
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;
import org.openqa.selenium.By;
public class BrowserGo {
public static void main(String[] args) throws InterruptedException {
WebDriver driver = new ChromeDriver();
//get 到百度首页
driver.get("https://www.baidu.com/");
System.out.printf("now accesss %s \n", driver.getCurrentUrl());
Thread.sleep(2000);
//点击“新闻” 链接
driver.findElement(By.linkText("新闻")).click();
System.out.printf("now accesss %s \n", driver.getCurrentUrl());
Thread.sleep(2000);
//执行浏览器后退
driver.navigate().back();
System.out.printf("back to %s \n", driver.getCurrentUrl());
Thread.sleep(2000);
//执行浏览器前进
driver.navigate().forward();
System.out.printf("forward to %s \n", driver.getCurrentUrl());
Thread.sleep(2000);
driver.quit();
}
}
刷新页面
有时候需要手动刷新(F5)页面。
- refresh()刷新页面(F5)
driver.navigate().refresh();
webdriver常用方法
- clear()清除文本
- sendKey(*value)模拟按键输入
- click()单击元素
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.chrome.ChromeDriver;
public class BaiduDemo {
public static void main(String[] args) {
WebDriver driver = new ChromeDriver();
driver.get("https://www.baidu.com/");
WebElement search_text = driver.findElement(By.id("kw"));
WebElement search_button = driver.findElement(By.id("su"));
search_text.sendKeys("Java");
search_text.clear();
search_text.sendKeys("Selenium");
search_button.click();
driver.quit();
}
}
clear()方法用于清除文本输入框种的内容。
sendKey()方法模拟按键向输入框里输入内容。但是它的作用不仅于此,我们还可以用它发送键盘按键,甚至用它来指定上传的文件。
click()方法可以用来单击一个元素,前提是它是可以被单击的对象,它与sendKeys()方法是Web页面操作种最常用到的两个方法。其实click()方法不仅仅用于单击一个按钮,它还可以单击任何可以单击的文字/图片链接、复选框、单击框、下拉框等。
2.其它常用方法
- submit()
submit()方法用于提交表单。例如,在搜索输入关键字之后的"回车"操作,就可以通过submit()方法模拟。
……
webElement search_text=driver.findElement(By.id("kw"));
search_text.sendKeys("Selenium");
search_text.submit();