这个问题有两个部分-
- 当chrome浏览器已经打开,并且我触发seleniumjava测试用例在chrome上运行时,它不会打开新的chrome会话
- 它使用了已打开的现有chrome,并开始打开新的选项卡,但仍然不起作用
我的驱动程序初始化如下所示:
System.setProperty("webdriver.chrome.driver", ConfigUtils.getCurrentDirectory()+ Chromefile.getPath());
ChromeOptions options = new ChromeOptions();
//options.addArguments("--headless");
options.addArguments("--no-sandbox");
options.addArguments("start-maximized");
options.addArguments("disable-infobars");
options.addArguments("disable-extensions");
options.setExperimentalOption("useAutomationExtension", false)
driver = new ChromeDriver(options);
我已经尝试了一些关于Stack Overflow-的建议
有人描述这是一个问题,因为
chromedriver
无法启动chrome默认配置文件的另一个实例。因此,我在上面的代码中添加了以下行-String profile1 = "C:\Users\user_id\Documents\ChromeProfile1\"; options.addArguments("user-data-dir="+profile1);
这样做是为了让chromedriver
能够推出新的铬型材。它确实打开了一个新的chrome窗口,但没有导航到URL。
根据chromedriver的官方文件-
默认情况下,ChromeDriver将为每个一场
我以前从来没有这样做过。我不知道为什么这不起作用,我还能做什么?
我正在使用-
Selenium-java version 3.141.1 ChromeDriver version 2.38 Chrome version 70 Windows 10
请注意-我上面提到的chrome和chromedriver版本是兼容的,当chrome还没有运行时运行良好。此外,我可以在chrome窗口已经打开的情况下在无头模式下运行相同的测试。
如果你需要更多信息,请告诉我。我得到的错误如下-
启动ChromeDriver 2.38.552522端口18020上的(437e6fbedfa8762dec75e2c5b3ddb86763dc9dcb(仅本地允许连接。org.openqa.selenium.WebDriverException:未知错误:Chrome无法启动:崩溃(驱动程序信息:镀铬器=2.38.552522(437e6fbedfa8762dec75e2c5b3ddb86763dc9dcb(,平台=Windows NT10.0.17134 x86_64((警告:服务器未提供任何堆栈竞争信息(命令持续时间或超时:61.87秒生成信息:版本:"3.141.5",修订:"d54ebd709a",时间:'2018-11-06T11:42:16'系统信息:主机:XXXX,ip:XXXX,os.name:"Windows 10",os.arch:"x86",os.version:"10.0",java.version:"1.8.0_162"驱动程序信息:驱动程序版本:ChromeDriver
ChromeDriver 2.38仅支持Chrome 65到67。请参阅上的发布说明https://chromedriver.storage.googleapis.com/2.38/notes.txt.在某些情况下,它可能碰巧与其他版本的Chrome配合使用,但不支持这样的使用。建议将ChromeDriver 2.44与Chrome 70配合使用。
我看不出你发布的代码有任何问题。希望您在下载新的ChromeDriver后能够获得更好的结果。