selenium自动化 java开发入门使用

需求:抓取某网站数据,通过selenium自动化来获取

selenium官网:https://www.selenium.dev/zh-cn/

selenium是一个兼容多语言的插件工具,使用python的多一些,这次是使用java来开发自动化,需要有一些了解一些前端html标签和js技术

我的开发环境:springboot +idea+ChromeDriver+selenium

环境准备:

      所需要的pom依赖

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
<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
posted @   始终不过一场繁华  阅读(701)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 【.NET】调用本地 Deepseek 模型
· CSnakes vs Python.NET:高效嵌入与灵活互通的跨语言方案对比
· DeepSeek “源神”启动!「GitHub 热点速览」
· 我与微信审核的“相爱相杀”看个人小程序副业
· Plotly.NET 一个为 .NET 打造的强大开源交互式图表库
点击右上角即可分享
微信分享提示