0


Selenium入门用法详解【Java爬虫】

概述

Selenium 是一个有很多工具和库,可以用来支持浏览器自动化的项目

它能模拟用户与浏览器进行交互,实现 了W3C WebDriver 规范的基础架构 。

Selenium 的核心是WebDriver,可以理解为一个驱动包。

搭建项目

1.先安装Selenium类库(java)

打开你的IDEA,新建一个空的Maven项目,
在项目文件中添加selenium-java依赖项:pom.xml

<dependency><groupId>org.seleniumhq.selenium</groupId><artifactId>selenium-java</artifactId><version>4.7.1</version></dependency><dependency><groupId>org.seleniumhq.selenium</groupId><artifactId>selenium-grid</artifactId><version>4.7.1</version></dependency><dependency><groupId>org.slf4j</groupId><artifactId>slf4j-api</artifactId><version>1.7.36</version></dependency><dependency><groupId>ch.qos.logback</groupId><artifactId>logback-classic</artifactId><version>1.2.11</version></dependency><!--下面这个依赖会根据你电脑安装的浏览器版本自动选择驱动(驱动管理)--><dependency><groupId>io.github.bonigarcia</groupId><artifactId>webdrivermanager</artifactId><version>5.2.3</version></dependency>

开始使用Selenium

Selenium 所做的一切都是发送浏览器命令来做某事或发送信息请求。您将使用 Selenium 执行的大部分操作都是以下基本命令的组合:

1. 开始会话

WebDriver driver =newChromeDriver();

2.访问一个网站

在这个例子中,我们正在导航到一个网页。

 driver.get("https://selenium.dev");

3.读取页面数据

您可以请求有关浏览器的多种类型的信息,包括窗口句柄、浏览器大小/位置、cookie、警报等。

 driver.getTitle();// => "Google"

4. 建立等待策略

将代码与浏览器的当前状态同步是 Selenium 的最大挑战之一,而将其做好是一个高级主题。

本质上,您希望在尝试定位元素之前确保该元素位于页面上,并且在尝试与其交互之前该元素处于可交互状态。

隐式等待很少是最好的解决方案,但在这里最容易演示,因此我们将其用作占位符。

 driver.manage().timeouts().implicitlyWait(Duration.ofMillis(500));

5. 查找页面元素

大多数 Selenium 会话中的大多数命令都是与元素相关的,如果不先找到元素,您就无法与之交互

WebElement searchBox = driver.findElement(By.name("q"));WebElement searchButton = driver.findElement(By.name("btnK"));

6.操作查找到的元素

对一个元素只有少量操作,但您会经常使用它们。

searchBox.sendKeys(“Selenium”);
searchButton.click();

7.读取元素信息

元素存储了大量可以请求的信息。请注意,我们需要重新定位搜索框,因为自从我们第一次找到它之后 DOM 已经发生了变化。

driver.findElement(By.name("q")).getAttribute("value");// => "Selenium"

8. 结束会话

这将结束驱动程序进程,默认情况下也会关闭浏览器。无法向此驱动程序实例发送更多命令。

 driver.quit();

Hello world 代码示例

importorg.openqa.selenium.WebDriver;importorg.openqa.selenium.chrome.ChromeDriver;publicclassJDCrawler{publicstaticvoidmain(String[] args){WebDriver driver =newChromeDriver();
        driver.get("https://baidu.com");
        driver.quit();}}
标签: selenium java

本文转载自: https://blog.csdn.net/u012756235/article/details/123590369
版权归原作者 汤姆看特 所有, 如有侵权,请联系我们删除。

“Selenium入门用法详解【Java爬虫】”的评论:

还没有评论