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
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 【.NET】调用本地 Deepseek 模型
· CSnakes vs Python.NET:高效嵌入与灵活互通的跨语言方案对比
· DeepSeek “源神”启动!「GitHub 热点速览」
· 我与微信审核的“相爱相杀”看个人小程序副业
· Plotly.NET 一个为 .NET 打造的强大开源交互式图表库