做自动化时经常会遇到不兼容的问题,比如以下简单的脚本,主要是打开浏览器,然后最大化窗口,打开百度,输入内容搜索,代码如下:
package com.gs.selenium; import org.openqa.selenium.By; import org.openqa.selenium.WebDriver; import org.openqa.selenium.chrome.ChromeDriver; import org.openqa.selenium.chrome.ChromeOptions; public class demo1 { public static void main(String[] args) { System.setProperty("webdriver.chrome.driver", "E:\ware\selenium\chromedriver_win32\chromedriver.exe"); ChromeOptions options = new ChromeOptions(); options.addArguments("disable-infobars");// 设置chrome浏览器的参数,使其不弹框提示(chrome正在受自动测试软件的控制) WebDriver dr = new ChromeDriver(options); dr.manage().window().maximize();// 最大化浏览器 dr.get("https://www.baidu.com");// 打开要测试的网址,比如百度 dr.findElement(By.id("kw")).sendKeys("hello");// 输入搜索关键字 System.out.print("打开网页"); try { Thread.sleep(6000); } catch (InterruptedException e) { // TODO 自动生成的 catch 块 e.printStackTrace(); } dr.close();//关闭浏览器 }
selenium 3.7版本放大浏览器窗口报错如下
报错:Exception in thread "main" org.openqa.selenium.WebDriverException: disconnected: unable to connect to renderer
查看报错,脚本运行到窗口最大化时出现错误的,经过仔细分析,发现chrom版本是62,与chromedriver不兼容的问题造成的。
解决方法:
去如下网址下载最下的chromedriver:
https://npm.taobao.org/mirrors/chromedriver/
下载后在运行以上脚本,问题顺利解决。
最后附上java工程jar包图: