前言
环境参考 selenium:我的第一个程序使用已打开的chrome浏览器有啥好处 不用验证登陆状态,可以先登陆,再爬虫不用反复开浏览器开启命令行启动 chrome.exe
找到 chrome 安装目录。一般为C:\Program Files (x86)\Google\Chrome\Application
。打开 windows cmd 进入chrome安装目录。cd C:\Program Files (x86)\Google\Chrome\Application
启动 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="/POM/4.0.0"xmlns:xsi="/2001/XMLSchema-instance"xsi:schemaLocation="/POM/4.0.0 /xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><groupId>net.sayyy.sample.selenium</groupId><artifactId>02-UseOpenedChrome</artifactId><version>1.0</version><properties><java.version>1.8</java.version><charset>UTF-8</charset><!-- javac -source --><piler.source>${java.version}</piler.source><!-- javac -target --><piler.target>${java.version}</piler.target><!-- 编译时的编码 --><piler.encoding>${charset}</piler.encoding><project.build.sourceEncoding>${charset}</project.build.sourceEncoding><project.reporting.outputEncoding>${charset}</project.reporting.outputEncoding></properties><dependencies><dependency><groupId>org.seleniumhq.selenium</groupId><artifactId>selenium-java</artifactId><version>3.9.1</version></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("");} catch (Exception e) {e.printStackTrace();} finally {driver.quit(); //(2)}}}
(1) 设置debuggerAddress。
(2) 退出 driver 。因为chrome不是driver创建的,所以退出driver不会关闭chrome。
启动 StartWebDriver 类
启动后效果与 selenium:我的第一个程序 一样。
结尾
至此完成了程序。
代码参考: /sayyy/sample-selenium-java/tree/master/02-UseOpenedChrome