如何在Selenie测试中删除由自动化测试软件控制的Infobar&Microsoft Edge [英] How to remove the infobar "Microsoft Edge is being controlled by automated test software" in selenium test

查看:17
本文介绍了如何在Selenie测试中删除由自动化测试软件控制的Infobar&Microsoft Edge的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我们正在使用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

  1. useAutomationExtension=FALSE
  2. excludeSwitches=[启用自动化]
  3. 首选项={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(setBinarysetExperientalOption)。

我在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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆