selenium自动化 java开发入门使用
需求:抓取某网站数据,通过selenium自动化来获取
selenium官网:https://www.selenium.dev/zh-cn/
selenium是一个兼容多语言的插件工具,使用python的多一些,这次是使用java来开发自动化,需要有一些了解一些前端html标签和js技术
我的开发环境:springboot +idea+ChromeDriver+selenium
环境准备:
所需要的pom依赖
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>com.google.code.gson</groupId>
<artifactId>gson</artifactId>
<version>2.8.9</version>
</dependency>
<dependency>
<groupId>org.seleniumhq.selenium</groupId>
<artifactId>selenium-remote-driver</artifactId>
<version>3.141.59</version>
</dependency>
<dependency>
<groupId>org.seleniumhq.selenium</groupId>
<artifactId>selenium-java</artifactId>
<version>3.141.59</version>
</dependency>
<dependency>
<groupId>org.jsoup</groupId>
<artifactId>jsoup</artifactId>
<version>1.12.1</version>
</dependency>
<dependency>
<groupId>org.seleniumhq.selenium</groupId>
<artifactId>selenium-api</artifactId>
<version>3.141.59</version>
</dependency>
ChromeDriver:通过chrome的自动代理框架控制浏览器
下载地址:http://chromedriver.storage.googleapis.com/index.html (无需FQ)
注:ChromeDriver的下载需要和你电脑已有的chrome版本保持一致,WebDriver其实有很多,包括其他的浏览器,selenium官网提供了下载地址:https://www.selenium.dev/documentation/webdriver/getting_started/install_drivers/
以chromeDriver为例来测试selenium
抓取元素实例:

java代码:
public static void main(String[] args) {
//设置ChromeDriver的路径
System.setProperty("webdriver.chrome.driver", "/Users/reid/selenium-java/chromedriver");
WebDriver webDriver = new ChromeDriver();
//需要打开的网站地址
webDriver.get("https://xxx.xxx.gov.cn/xxxxxxxx/#/search/medical");
//以class抓取标签,当class不是唯一值时要通过webDriver.findElements来获取
List<WebElement> weblist = webDriver.findElements(By.className(".cell.el-tooltip"));
for (WebElement webElement : webLiList) {
String text = webElement.getText();
System.out.printlh(text);
}
webDriver.close();
webDriver.quit();
}
By对象的操作:注:当html标签class属性值中有空格的时候需要通过点的方式分割,切勿直接使用空格 以上面java代码为例绿色部分
By.className("") 通过class获取标签
By.cssSelector("") 通过css选择器获取标签
By.tagName("") 通过标签名获取
By.id("") 通过id获取
By.xpath("") 通过xpath语句获取
xpath的语法操作方式:https://www.runoob.com/xpath/xpath-syntax.html

浙公网安备 33010602011771号