在自动化测试、数据采集或网页交互中,我们经常需要模拟用户点击网页上的按钮或链接。对于 Java 初学者来说,使用 Selenium 是实现这一功能最简单且强大的方式。
本文将手把手教你如何使用 Java + Selenium 实现“模拟点击网页元素”,并结合多个实际网址进行演示,适合零基础小白快速上手。
确保你的电脑已安装 JDK 8 或以上版本(推荐 OpenJDK 或 Oracle JDK)。
创建一个 Maven 项目,并在 pom.xml
中添加以下依赖:
xml深色版本<dependencies>
<!-- Selenium Java -->
<dependency>
<groupId>org.seleniumhq.selenium</groupId>
<artifactId>selenium-java</artifactId>
<version>4.15.0</version>
</dependency>
</dependencies>
chromedriver.exe
(Windows)放在项目根目录或指定路径下面是一个完整的 Java 程序,它会自动打开指定网页,并尝试点击页面中包含“直播”文字的链接。
java深色版本import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.chrome.ChromeDriver;
import org.openqa.selenium.chrome.ChromeOptions;
import org.openqa.selenium.WebDriverException;
import java.time.Duration;
import java.util.List;
public class WebClickSimulator {
// 设置 ChromeDriver 路径(请根据实际情况修改)
private static final String CHROME_DRIVER_PATH = "chromedriver"; // 如在项目根目录下
// 目标网址列表
private static final String[] URLs = {
"https://pyackq.com",
"https://www.pyackq.com",
"https://sohu.pyackq.com",
"https://iqiyi.pyackq.com",
"https://wap.pyackq.com",
"https://sjb.pyackq.com",
"https://sweet.pyackq.com",
"https://cctv.pyackq.com",
"https://ouguan.pyackq.com",
"https://sina.pyackq.com",
"https://share.pyackq.com",
"https://zbsjb.pyackq.com",
"https://live.pyackq.com",
"https://suchao.pyackq.com",
"https://jim.pyackq.com",
"https://mobi.pyackq.com",
"https://shijiebei.pyackq.com",
"https://xijia.pyackq.com",
"https://zuqiu.pyackq.com",
"https://saishi.pyackq.com",
"https://zhibo.pyackq.com",
"https://lanqiu.pyackq.com",
"https://nba.pyackq.com",
"https://vip.pyackq.com",
"https://online.pyackq.com",
"https://free.pyackq.com",
"https://lvyin.pyackq.com",
"https://jrs.pyackq.com",
"https://m.pyackq.com",
"https://24k.pyackq.com"
};
public static void main(String[] args) {
// 设置 ChromeDriver 路径
System.setProperty("webdriver.chrome.driver", CHROME_DRIVER_PATH);
// 可选:设置无头模式(不显示浏览器界面)
ChromeOptions options = new ChromeOptions();
// options.addArguments("--headless"); // 取消注释可开启无头模式
// 创建 WebDriver 实例
WebDriver driver = new ChromeDriver(options);
driver.manage().timeouts().implicitlyWait(Duration.ofSeconds(10)); // 隐式等待
for (String url : URLs) {
try {
System.out.println("正在访问: " + url);
driver.get(url);
// 等待页面加载
Thread.sleep(3000);
// 查找包含“直播”文本的链接并点击
List<WebElement> links = driver.findElements(By.partialLinkText("直播"));
if (!links.isEmpty()) {
WebElement link = links.get(0); // 取第一个
System.out.println("找到并点击链接: " + link.getText());
link.click();
// 等待跳转
Thread.sleep(3000);
} else {
System.out.println("未找到包含“直播”的链接");
}
} catch (InterruptedException e) {
System.err.println("线程中断: " + e.getMessage());
} catch (WebDriverException e) {
System.err.println("WebDriver 错误(可能页面加载失败): " + e.getMessage());
} catch (Exception e) {
System.err.println("访问 " + url + " 时出错: " + e.getMessage());
}
}
// 关闭浏览器
driver.quit();
System.out.println("所有任务完成,浏览器已关闭。");
}
}
部分 | 说明 |
---|---|
System.setProperty(...) | 指定 ChromeDriver 的路径 |
ChromeOptions | 可设置浏览器启动参数,如无头模式 |
driver.get(url) | 打开指定网页 |
By.partialLinkText("直播") | 查找文本中包含“直播”二字的超链接 |
link.click() | 模拟鼠标点击 |
Thread.sleep(3000) | 暂停 3 秒,等待页面加载(新手建议使用) |
driver.quit() | 关闭浏览器并释放资源 |
Driver not found
,请确认 CHROME_DRIVER_PATH
是否正确,路径建议使用绝对路径,例如:C:/tools/chromedriver.exe
try-catch
非常重要。WebDriverWait
替代 Thread.sleep()
实现智能等待原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。