如何在Selenie测试中删除由自动化测试软件控制的Infobar&Microsoft Edge [英] How to remove the infobar "Microsoft Edge is being controlled by automated test software" in selenium test
问题描述
我们正在使用Selify对"基于铬的边缘"进行测试。 Chromium Edge从https://www.microsoftedgeinsider.com/en-us/download下载,版本为80.0.334.2(官方版本)dev(64位)。 我们从https://msedgewebdriverstorage.z22.web.core.windows.net/
获取了匹配的驱动程序msedgedriver.exe 我们将"C:Program Files(X86)MicrosoftEdge DevApplication"添加到环境"路径"中,以便在测试期间找到可执行文件"msedge.exe"。 使用选项-Dwebdriver.edge.driver="pathTomsedgedriver.exe",启动Selify服务器后,我们可以在"Chromium Edge"中运行测试,如下所示:但有一个Infobar"Microsoft Edge正在由自动测试软件控制",就像我们使用Chrome浏览器运行测试一样。使用Chrome,我们可以通过将以下实验选项设置为ChromeOptions来删除该Infobar
- useAutomationExtension=FALSE
- excludeSwitches=[启用自动化] 首选项={Credentials_Enable_SERVICE=False,profile={password_manager_enabled=false}}
我试图设置相同的选项,但我启动了一个没有Infobar的浏览器,但它是Chrome浏览器,而不是"Chromium Edge"。
推荐答案
我想我可以解释所有的困惑(也许是我自己的😊)。在以下链接中Microsoft Chromium Edge
我们可以找到以下内容: 如果您以前使用ChromeDriver和ChromeOptions自动化或测试Microsoft Edge(Chromium),您的WebDriver代码将无法在Microsoft Edge 80或更高版本上成功运行。这是一项重大更改,Microsoft Edge(Chromium)不再接受这些命令。您必须更改测试才能使用EdgeOptions和Microsoft Edge驱动程序。
这样我们就可以将Chromium-Edge(版本低于80)完全作为Chrome浏览器处理。
System.setProperty("webdriver.chrome.driver", "C:\SeleniumPlus\extra\msedgedriver.exe");
ChromeOptions chromeOptions = new ChromeOptions();
chromeOptions.setBinary("C:\Program Files (x86)\Microsoft\Edge Dev\Application\msedge.exe");
chromeOptions.setExperimentalOption("useAutomationExtension", false);
chromeOptions.setExperimentalOption("excludeSwitches", Collections.singletonList("enable-automation"));
ChromeDriver driver = new ChromeDriver(chromeOptions);
driver.get("http://www.google.com");
driver.close();
对于Chromium-Edge(80或更高版本),我们应该将其视为Edge浏览器,代码如下:
问题是EdgeOptions没有像ChromeOptions☹那样提供足够的API(setBinary、setExperientalOption)。
我在GitHub查看了Selify的源代码,发现EdgeOptions已经将这些方法支持为ChromeOptions。所以我下载了最新的官方版本,版本是3.141.59,并于2018年12月20日发布,我发现它没有最新的源代码☹。 所以我得到了Alpha版本4.0.0-Alpha-4,它确实包含最新的源代码。
System.setProperty("webdriver.edge.driver", "C:\SeleniumPlus\extra\msedgedriver.exe");
EdgeOptions edgeOptions = new EdgeOptions();
edgeOptions.setBinary("C:\Program Files (x86)\Microsoft\Edge Dev\Application\msedge.exe");
edgeOptions.setExperimentalOption("useAutomationExtension", false);
edgeOptions.setExperimentalOption("excludeSwitches", Collections.singletonList("enable-automation"));
EdgeDriver driver = new EdgeDriver(edgeOptions);
driver.get("http://www.google.com");
driver.close();
最后,我要感谢我的卡尔同志,他帮我找到了诀窍。
这篇关于如何在Selenie测试中删除由自动化测试软件控制的Infobar&Microsoft Edge的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!