
一、创建浏览器对象
//谷歌为例
System.setProperty("webdriver.chrome.driver", "src\\drivers\\chromedriver.exe");
WebDriver driver = new ChromeDriver();
二、设置窗口位置、大小
//设置浏览器窗口位置,相对于屏幕左上角(0,0)的位置 Point point = new Point(100, 100); driver.manage().window().setPosition(point); //设置浏览器窗口大小 Dimension dimension = new Dimension(500, 500); driver.manage().window().setSize(dimension); //获取浏览器窗口位置 Point position = driver.manage().window().getPosition(); System.out.println(position); //获取浏览器窗口大小 Dimension size = driver.manage().window().getSize(); System.out.println(size); //浏览器窗口最大化 driver.manage().window().maximize(); //全屏 driver.manage().window().fullscreen();
三、访问网页操作
//访问网页地址(第一种方式)
driver.get("https://www.hao123.***/");
//访问网页地址(第二种方式)
driver.navigate().to("https://www.baidu.***/");
//网页后退
driver.navigate().back();
//网页前进
driver.navigate().forward();
//刷新网页
driver.navigate().refresh();
四、获取网页信息
//获取当前页面Url
String currentUrl = driver.getCurrentUrl();
System.out.println(currentUrl);
//获取当前页面源码
String pageSource = driver.getPageSource();
System.out.println(pageSource);
//获取当前页面Title
String title = driver.getTitle();
System.out.println(title);
//获取当前窗口句柄
String windowHandle = driver.getWindowHandle();
System.out.println(windowHandle);
//获取当前所有打开窗口的句柄
Set<String> windowHandles = driver.getWindowHandles();
for (String handle : windowHandles) {
System.out.println(handle);
}
五、切换窗口
driver.switchTo().window("要切换的窗口句柄");
六、截图保存
File fileTo = ((TakesScreenshot) driver).getScreenshotAs(OutputType.FILE);
try {
FileInputStream fileInputStream = new FileInputStream(fileTo);
FileOutputStream fileOutputStream = new FileOutputStream("test.png");
byte[] bytes = new byte[1024];
int len = 0;
while ((len = fileInputStream.read(bytes))!=-1){
fileOutputStream.write(bytes);
};
} catch (IOException e) {
e.printStackTrace();
}
七、关闭窗口
//杀掉浏览器进程-谷歌为例(注意:此方法杀掉了所有谷歌进程,包括自己打开的和程序打开的)
WindowsUtils.killByName("chrome.exe");
//关闭当前窗口,如果仅剩一个窗口,则退出浏览器
driver.close();
//退出浏览器
driver.quit();
八、元素定位
1.使用ID定位
WebElement webElement = driver.findElement(By.id("ID值"));
2.使用name定位
WebElement webElement = driver.findElement(By.name("name值"));
List<WebElement> elements = driver.findElements(By.name("name值"));
3.使用链接的全部文字定位
WebElement webElement = driver.findElement(By.linkText("链接的全部文字内容"));
List<WebElement> elements = driver.findElements(By.linkText("链接的全部文字内容"));
4.使用部分链接的文字定位
WebElement webElement = driver.findElement(By.partialLinkText("链接的部分文字内容"));
List<WebElement> elements = driver.findElements(By.partialLinkText("链接的部分文字内容"));
5.使用标签名称定位
WebElement webElement = driver.findElement(By.tagName("页面中的HTML标签名称"));
List<WebElement> elements = driver.findElements(By.tagName("页面中的HTML标签名称"));
6.使用Class名称定位
WebElement webElement = driver.findElement(By.className("页面中的Class属性值"));
List<WebElement> elements = driver.findElements(By.className("页面中的Class属性值"));
7.使用XPath方式定位
WebElement webElement = driver.findElement(By.xpath("XPath定位表达式"));
List<WebElement> elements = driver.findElements(By.xpath("XPath定位表达式"));
8.使用CSS定位
WebElement webElement = driver.findElement(By.cssSelector("CSS定位表达式"));
List<WebElement> elements = driver.findElements(By.cssSelector("CSS定位表达式"));
9.使用jQuery方式定位,先将driver转换为JavascriptExecutor对象,再调用jQuery的find方法查找页面元素,返回List对象
JavascriptExecutor js = (JavascriptExecutor) driver;
List<WebElement> elements =
(List<WebElement>) js.executeScript("return jQuery.find('jQuery定位表达式')");
九、元素操作
WebElement element= driver.findElement(By.id("id值"));
1.清空输入框
element.clear();
2.输入框输入文字
element.sendKeys("Selenium");
3.点击元素
element.click();
4.获取标签名称
String tagName = element.getTagName();
5.获取属性值
String id = element.getAttribute("id");
6.获取CSS属性值
String width = element.getCssValue("width");
7.获取元素是否可见
boolean displayed = element.isDisplayed();
8.获取元素是否可点击
boolean enabled = element.isEnabled();
9.获取元素是否被选中
boolean selected = element.isSelected();
持续更新中...