Selenium是一个用于Web应用程序测试的工具; Selenium测试直接运行在浏览器中,就像真正的用户在操作一样;
测试与浏览器的兼容性——测试你的应用程序看是否能够很好得工作在不同浏览器和操作系统之上; 测试系统功能——创建回归测试检验软件功能和用户需求; 支持自动录制动作和自动生成.Net、Java、Perl等不同语言的测试脚本;
<!-- https://mvnrepository.com/artifact/org.seleniumhq.selenium/selenium-java -->
<dependency>
<groupId>org.seleniumhq.selenium</groupId>
<artifactId>selenium-java</artifactId>
<version>3.141.59</version>
</dependency>
https://npm.taobao.org/mirrors/chromedriver
package com.zb.book.selenium;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;
public class Main {
public static void main(String[] args) {
//设置驱动位置
System.setProperty("webdriver.chrome.driver", "D:\\MySoft\\ChromeDriver\\chromedriver.exe");
//创建一个谷歌浏览器对象
WebDriver driver = new ChromeDriver(); //Chrome浏览器
//访问百度首页
driver.get("http://www.baidu.com/");
//获取标题,并打印
System.out.println(driver.getTitle());
//关闭浏览器
driver.close();
}
}
系统自动启动了谷歌浏览器,并访问了百度首页,获取标题之后,关闭了浏览器;
实现使用自动搜索关键词“猫”;
package com.zb.book.selenium;
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;
public class Main {
public static void main(String[] args) {
//设置驱动位置
System.setProperty("webdriver.chrome.driver", "D:\\MySoft\\ChromeDriver\\chromedriver.exe");
//创建一个谷歌浏览器对象
WebDriver driver = new ChromeDriver(); //Chrome浏览器
//访问百度首页
driver.get("http://www.baidu.com/");
//获取标题,并打印
System.out.println(driver.getTitle());
//定位元素,并设置内容
driver.findElement(By.cssSelector("#kw")).sendKeys("猫");
//定位元素,并点击
driver.findElement(By.cssSelector("#su")).click();
//关闭浏览器
//driver.close();
}
}
元素定位的方法有很多,使用也很简单,比如通过id、标签名、css选择器、Xpath等等,如下图:
package com.zb.book.selenium;
import org.openqa.selenium.JavascriptExecutor;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;
public class Main {
public static void main(String[] args) throws InterruptedException {
//设置驱动位置
System.setProperty("webdriver.chrome.driver", "D:\\MySoft\\ChromeDriver\\chromedriver.exe");
//创建一个谷歌浏览器对象
WebDriver driver = new ChromeDriver(); //Chrome浏览器
//访问百度首页
driver.get("https://www.youku.com/category/show/c_96_s_1.html?spm=a2hcb.12701310.app.5~5!2~5!2~5~5~DL!7~DD~A");
//获取标题,并打印
System.out.println(driver.getTitle());
//睡眠5秒,下拉
Thread.sleep(5000);
JavascriptExecutor js = (JavascriptExecutor)driver;
js.executeScript("scrollTo(0,5000)");
System.out.println(1);
Thread.sleep(5000);
js.executeScript("scrollTo(5000,10000)");
System.out.println(2);
Thread.sleep(5000);
js.executeScript("scrollTo(10000,30000)");
System.out.println(3);
String html = driver.getPageSource();
System.out.println(html);
//关闭浏览器
driver.close();
}
}
其它有隐藏浏览器、截取验证码等功能,用时再细细研究。
其它功能可参考:https://blog.csdn.net/qq_22003641/article/details/79137327