private void doLogin(Page page, String baseUrl) {
try {
String username = "userName";
String password = "passWord";
// 设置chrome选项
ChromeOptions options = new ChromeOptions();
options.addArguments("--headless");// 这里设置为不打开浏览器访问页面
options.addArguments("--incognito");// 隐身模式(无痕模式)
ChromeDriver driver = new ChromeDriver(options);
driver.get(baseUrl);
//等待加载完成
driver.manage().timeouts().implicitlyWait(Duration.ofMillis(TimeUnit.SECONDS.toMillis(30)));
WebElement goin = driver.findElement(By.id("goin"));
goin.click();
// 获取页面元素
WebElement elemUsername = driver.findElement(By.name("username"));
WebElement elemPassword = driver.findElement(By.name("password"));
// 操作页面元素
elemUsername.clear();
elemPassword.clear();
elemUsername.sendKeys(username);
elemPassword.sendKeys(password);
WebElement login = driver.findElement(By.className("mem_login"));
baseUrl = driver.getCurrentUrl();
login.click();// 执行点击操作
} catch (Exception e) {
e.printStackTrace();
System.exit(0);
}
}
异常:
Starting ChromeDriver 104.0.5112.79 (3cf3e8c8a07d104b9e1260c910efb8f383285dc5-refs/branch-heads/5112@{#1307}) on port 51116
Only local connections are allowed.
Please see https://chromedriver.chromium.org/security-considerations for suggestions on keeping ChromeDriver safe.
ChromeDriver was started successfully.
org.openqa.selenium.SessionNotCreatedException: Could not start a new session. Response code 500. Message: session not created: This version of ChromeDriver only supports Chrome version 104
Current browser version is 106.0.5249.103 with binary path C:\Program Files\Google\Chrome\Application\chrome.exe
Build info: version: '4.1.4', revision: '535d840ee2'
System info: host: 'DESKTOP-KLKMGLG', ip: 'xxx.xxx.xxx.xxx', os.name: 'Windows 10', os.arch: 'amd64', os.version: '10.0', java.version: '11.0.15.1'
Driver info: org.openqa.selenium.chrome.ChromeDriver
Command: [null, newSession {capabilities=[Capabilities {browserName: chrome, goog:chromeOptions: {args: [--headless, --incognito], extensions: []}}], desiredCapabilities=Capabilities {browserName: chrome, goog:chromeOptions: {args: [--headless, --incognito], extensions: []}}}]
at org.openqa.selenium.remote.ProtocolHandshake.createSession(ProtocolHandshake.java:126)
版本不一致,更换新的版本
下载地址
https://chromedriver.chromium.org/downloads
查看 谷歌浏览器 UserAgent
打开新的网页输入
chrome://version/
查看 用户代理 就为 UserAgent
在Linux 部署时:
安装 chrome
yum install https://dl.google.com/linux/direct/google-chrome-stable_current_x86_64.rpm
安装 chromedriver
在安装chromedriver之前,先查看自己系统装的chrome版本:
google-chrome --version