selenium + ChromeDriver

本文介绍了Selenium用于Web应用程序测试的基本使用,结合ChromeDriver展示了如何配置环境、操作浏览器、输入文本、点击元素以及标签页切换等。通过示例代码演示了Selenium在爬虫中的应用,包括访问百度、自动输入、点击链接及切换页面等功能。文章适合初学者了解Selenium的实战操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

selenium + ChromeDriver

    Selenium是一个用于Web应用程序测试的工具。Selenium测试直接运行在浏览器中,就像真正的用户在操作一样。而对于爬虫来说,使用Selenium操控浏览器来爬取网上的数据那么肯定是爬虫中的杀手武器。这里,我将介绍selenium + 谷歌浏览器的一般使用。首先会介绍如何安装部署环境,然后贴出一些本人所使用的一些方法,最后给出github地址,供大家下载。


1. selenium 环境配置

selenium 官网地址:Downloads | Selenium

导入 selenium 的 jar 包有多种方式,这里介绍两个: 

第一种是直接下载,然后将下载中的 jar 包复制到eclipse或者idea中,然后添加即可

 

第二种是使用maven


2. 下载github代码并且进行测试

谷歌浏览使用的版本是:60.0.3112.78,这里注意,谷歌浏览器和谷歌驱动需要匹配。具体可以见:http://blog.csdn.net/llbacyal/article/details/78563992

 idea使用的版本是:2016.12

Java使用的版本是:1.8

  • 首先在github上下载代码,地址为:https://github.com/lunaMoon1010/SeleniumDemo

  • 导入项目 

1、解压后,使用idea导入该项目

2、选择刚刚解压的项目

 3、让maven导入jar包,maven简单来说是一个jar包管理插件,通过配置的方式在maven仓库下载你所需要的jar包

  • 运行代码进行测试

1、测试HelloWorld,方法里面具体的内容请到方法里面查看,注释都是有写的

/**
	 * 用来测试第一个代码,访问百度
 */
@Test
public void testHelloWorld() throws Exception {
	//开启个浏览器并且输入链接
	WebDriver driver = PageUtils.getChromeDriver("https://www.baidu.com/");
	//得到浏览器的标题
	System.out.println(driver.getTitle());
	Thread.sleep(5000);
	//关闭浏览器 下面是关闭所有标签页,还有一个代码是 driver.close();, 关闭当前标签页
	driver.quit();
}

如果你运行出现下图情况,说明你环境上没有问题了

2、测试自动输入

/**
 * 测试向input标签输入值
 */
@Test
public void testInputStrByJS(){
	//开启个浏览器并且输入链接
	WebDriver driver = PageUtils.getChromeDriver("https://www.baidu.com/");
	//向input输入值
	PageUtils.inputStrByJS(driver, "kw", "月之暗面 博客园");
}

如果出现下面情况说明你测试成功了

3、测试点击

/**
 * 测试点击
 */
@Test
public void testScrollToElementAndClick() throws Exception {
	//1、开启个浏览器并且输入链接
	WebDriver driver = PageUtils.getChromeDriver("https://www.baidu.com/");

	//2、向百度输入框输入需要查询的值
	PageUtils.inputStrByJS(driver, "kw", "月之暗面 博客园");

	//3、得到百度一下的标签
	WebElement submitElement = driver.findElement(By.cssSelector("input#su"));

	//4、点击百度一下
	PageUtils.scrollToElementAndClick(submitElement, driver);

	//休息3秒,加载数据
	Thread.sleep(3000);

	//5、首先找到 id 为 content_left 的 div 下面的所有 div
	List<WebElement> divElements = driver.findElements(By.cssSelector("div#content_left div"));
	//6、找到搜索的第一个链接
	WebElement aElement = divElements.get(0).findElement(By.cssSelector("div.f13 a[href]"));

	//7、点击该链接
	PageUtils.scrollToElementAndClick(aElement, driver);
}

如果出现下面情况,说明测试成功了

 4、测试标签页切换

/**
 * 测试切换到另一个标签页
 */
@Test
public void testGetAnotherPage() throws Exception {
	//1、开启个浏览器并且输入链接
	WebDriver driver = PageUtils.getChromeDriver("https://www.baidu.com/");

	//2、向百度输入框输入需要查询的值
	PageUtils.inputStrByJS(driver, "kw", "月之暗面 博客园");

	//3、得到百度一下的标签
	WebElement submitElement = driver.findElement(By.cssSelector("input#su"));

	//4、点击百度一下
	PageUtils.scrollToElementAndClick(submitElement, driver);

	//休息3秒,加载数据
	Thread.sleep(3000);

	//5、首先找到 id 为 content_left 的 div 下面的所有 div
	List<WebElement> divElements = driver.findElements(By.cssSelector("div#content_left div"));
	//6、找到搜索的第一个链接
	WebElement aElement = divElements.get(0).findElement(By.cssSelector("div.f13 a[href]"));

	//7、点击该链接
	PageUtils.scrollToElementAndClick(aElement, driver);

	//8、当前页面时百度的页面
	//将浏览器对象强制转为可以执行js的对象
	System.out.println("现在的页面是:"+driver.getTitle());
	//9、切换到博客园页面
	PageUtils.getAnotherPage(driver);
	//将浏览器对象强制转为可以执行js的对象
	System.out.println("现在的页面是:"+driver.getTitle());
}

如果出现下面的情况说明你测试成功了


3.总结

Selenium是一个用于Web应用程序测试的工具。但是也可以用来做爬虫,如果需要得到对应的数据,可以通过 element.getText()的方法得到,element的类型是WebElement。期间可能会有很多错误,但是希望大家能够通过度娘,谷歌等方式一一解决。本人因为能力有限,有不足或错误之处,希望能够被指出。

最后再次填上这个的代码地址:GitHub - lunaMoon1010/SeleniumDemo: Selenium的一些简单的使用,Selenium是一个用来测试web应用的工具,可以用来控制浏览器。

如果要详细怎么使用请访问:易彩堂官网 -官方信誉平台|安全购彩

### 一、SeleniumChromedriver简介 Selenium 是一种用于自动化浏览器操作的工具,广泛应用于 Web 应用程序的功能测试和性能测试。ChromeDriver 是一个独立的可执行文件,用于控制 Google Chrome 浏览器实例,使 Selenium 能够与 Chrome 浏览器交互[^1]。 ### 二、安装与配置步骤 #### 1. 安装 Selenium 确保系统中已安装 Python 环境后,可以通过以下命令安装 Selenium: ```bash pip install selenium ``` #### 2. 查看 Chrome 浏览器版本 在安装 ChromeDriver 之前,需要确认本地安装的 Chrome 浏览器版本。打开 Chrome 浏览器,进入设置页面,点击“关于 Chrome”,即可查看当前版本号[^3]。 #### 3. 下载并配置 ChromeDriver 根据 Chrome 浏览器的版本号,从官方下载地址下载对应的 ChromeDriver 版本[^4]: ```bash wget http://chromedriver.storage.googleapis.com/<version>/chromedriver_linux64.zip unzip chromedriver_linux64.zip ``` 将解压后的 `chromedriver` 文件移动到系统的 PATH 环境变量路径下,例如 `/usr/local/bin`,以确保全局可用[^1]。 #### 4. 配置环境变量 如果未将 ChromeDriver 添加到系统 PATH 中,则需要在代码中指定其路径。例如: ```python from selenium import webdriver driver = webdriver.Chrome(executable_path='/path/to/chromedriver') driver.get("https://www.baidu.com") ``` ### 三、使用示例 以下是一个简单的 Selenium 自动化测试代码示例,演示如何打开百度首页并搜索关键词[^2]: ```python from selenium import webdriver from selenium.webdriver.common.by import By from selenium.webdriver.common.keys import Keys # 初始化 Chrome 浏览器驱动 driver = webdriver.Chrome() try: # 打开百度首页 driver.get("https://www.baidu.com") # 定位搜索框并输入关键词 search_box = driver.find_element(By.ID, "kw") search_box.send_keys("Selenium Chromedriver") search_box.send_keys(Keys.RETURN) # 等待页面加载完成 driver.implicitly_wait(10) finally: # 关闭浏览器 driver.quit() ``` ### 四、高级配置 为了增强 Selenium 的功能或兼容性,可以使用 `DesiredCapabilities` 和 `ChromeOptions` 进行更精细的配置[^3]。例如,在无头模式(Headless Mode)下运行 Chrome 浏览器: ```python from selenium import webdriver from selenium.webdriver.chrome.service import Service from selenium.webdriver.chrome.options import Options # 设置 Chrome 选项 chrome_options = Options() chrome_options.add_argument("--headless") # 无头模式 chrome_options.add_argument("--disable-gpu") # 禁用 GPU 加速 # 指定 ChromeDriver 路径 service = Service('/path/to/chromedriver') # 初始化 WebDriver driver = webdriver.Chrome(service=service, options=chrome_options) # 访问网页 driver.get("https://www.baidu.com") print(driver.title) # 关闭浏览器 driver.quit() ``` ### 五、常见问题及解决方法 1. **ChromeDriver 版本不匹配**:确保 ChromeDriver 的版本与本地 Chrome 浏览器版本一致[^4]。 2. **无法找到 ChromeDriver**:检查是否正确设置了 PATH 环境变量或是否在代码中指定了正确的路径。 3. **无头模式报错**:在某些系统上可能需要额外参数,例如 `--no-sandbox` 或 `--disable-dev-shm-usage`。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值