selenium:使用已打开的chrome浏览器

前言

  • 环境参考 selenium:我的第一个程序
  • 使用已打开的chrome浏览器有啥好处
    • 不用验证登陆状态,可以先登陆,再爬虫
    • 不用反复开浏览器

开启命令行启动 chrome.exe

  1. 找到 chrome 安装目录。一般为 C:\Program Files (x86)\Google\Chrome\Application
  2. 打开 windows cmd 进入chrome安装目录。
cd C:\Program Files (x86)\Google\Chrome\Application
  1. 启动 chrome 程序,同时开启 remote-debugging-port 参数。
chrome.exe --remote-debugging-port=9222 --user-data-dir="C:\selenum\chrome_userdata"

编写程序

创建项目

在 Eclipse 中创建名为 02-UseOpenedChrome 的Maven项目。
添加依赖。
可以参考 selenium:我的第一个程序。

贴一下POM:

<project xmlns="http://maven.apache.org/POM/4.0.0"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
	<modelVersion>4.0.0modelVersion>

	<groupId>net.sayyy.sample.seleniumgroupId>
	<artifactId>02-UseOpenedChromeartifactId>
	<version>1.0version>

	<properties>
		<java.version>1.8java.version>
		<charset>UTF-8charset>
		
		<maven.compiler.source>${java.version}maven.compiler.source>
		
		<maven.compiler.target>${java.version}maven.compiler.target>
		
		<maven.compiler.encoding>${charset}maven.compiler.encoding>
		<project.build.sourceEncoding>${charset}project.build.sourceEncoding>
		<project.reporting.outputEncoding>${charset}project.reporting.outputEncoding>
	properties>

	<dependencies>
		<dependency>
			<groupId>org.seleniumhq.seleniumgroupId>
			<artifactId>selenium-javaartifactId>
			<version>3.9.1version>
		dependency>
	dependencies>
project>

编写 StartWebDriver 类

package net.sayyy.sample.selenium;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;
import org.openqa.selenium.chrome.ChromeOptions;

public class StartWebDriver {

	public static void main(String[] args) {
		System.setProperty("webdriver.chrome.driver", "C:\\selenum\\chromedriver_win32_80\\chromedriver.exe"); 
		
		ChromeOptions options = new ChromeOptions();
		options.setExperimentalOption("debuggerAddress", "127.0.0.1:9222"); //(1)
		
		WebDriver driver = new ChromeDriver(options);
		try {
			driver.get("https://taobao.com");
		} catch (Exception e) {
			e.printStackTrace();
		} finally {
			driver.quit(); //(2)
		}
	}

}

(1) 设置debuggerAddress。
(2) 退出 driver 。因为chrome不是driver创建的,所以退出driver不会关闭chrome。

启动 StartWebDriver 类

启动后效果与 selenium:我的第一个程序 一样。

结尾

至此完成了程序。
代码参考: https://gitee.com/sayyy/sample-selenium-java/tree/master/02-UseOpenedChrome

你可能感兴趣的:(selenium)