首页 > 解决方案 > 如何在 selenium 测试中删除信息栏“Microsoft Edge 正在由自动化测试软件控制”

问题描述

我们正在使用 selenium 对“基于 Chromium 的 Edge”进行测试。“The Chromium Edge”是从https://www.microsoftedgeinsider.com/en-us/download下载的,版本是 80.0.334.2 (Official build) dev (64-bit)。我们从https://msedgewebdriverstorage.z22.web.core.windows.net/获得了匹配的驱动程序 msedgedriver.exe

我们将“C:\Program Files (x86)\Microsoft\Edge Dev\Application”添加到环境“PATH”中,以便在测试期间找到可执行文件“msedge.exe”。使用选项 -Dwebdriver.edge.driver="pathTo\msedgedriver.exe" 启动 selenium 服务器后,我们可以在“Chromium Edge”中运行测试,如下所示:

在此处输入图像描述

但是有一个信息栏“Microsoft Edge 正在被自动化测试软件控制”,就像我们用 chrome 浏览器运行测试一样。使用 chrome,我们可以通过将以下 ExperimentalOption 设置为 ChromeOptions 来删除该信息栏

  1. 使用自动化扩展=假
  2. excludeSwitches=[启用自动化]
  3. 首选项={credentials_enable_service=false,配置文件={password_manager_enabled=false}}

我尝试设置相同的选项,但我启动了一个没有信息栏的浏览器,但它是一个 chrome 浏览器,而不是“Chromium Edge”。

标签: seleniummicrosoft-edgechromium

解决方案


您可以参考以下代码(C# 代码)来设置 chrome 选项并删除信息栏。

        var edgechromiumService = ChromeDriverService.CreateDefaultService(@"E:\edgedriver_win64", "msedgedriver.exe");
        // user need to pass the driver path here....
        ChromeOptions edgechromeOptions = new ChromeOptions
        {
            BinaryLocation = @"C:\Program Files (x86)\Microsoft\Edge Dev\Application\msedge.exe",
        };

        edgechromeOptions.AddAdditionalCapability("useAutomationExtension", false);
        edgechromeOptions.AddExcludedArgument("enable-automation"); 

        using (IWebDriver driver = new ChromeDriver(edgechromiumService, edgechromeOptions))
        {
            driver.Navigate().GoToUrl("https://www.bing.com/");
            Console.WriteLine(driver.Title.ToString());

            //driver.Close();
            Console.ReadKey();
        }

结果是这样的:

在此处输入图像描述

对于 Java 应用程序,请尝试使用以下代码:

import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;
import org.openqa.selenium.chrome.ChromeOptions; 
import org.openqa.selenium.edge.EdgeOptions;    
import java.util.*;  
public class Edgeauto {
    public static void main(String[] args) { 
        System.setProperty("webdriver.chrome.driver", "your\\path\\to\\edge\\webdriver\\msedgedriver.exe");
        ChromeOptionschromeOptions = 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"));

        EdgeOptions edgeOptions = new EdgeOptions().merge(chromeOptions);
        WebDriver driver = new ChromeDriver(edgeOptions);
        driver.get("https://www.google.com/");
     }
}

推荐阅读