Java ChromeDriver-禁用Selenium WebDriver automation上弹出的开发人员模式扩展

Java ChromeDriver-禁用Selenium WebDriver automation上弹出的开发人员模式扩展,java,selenium,selenium-webdriver,selenium-chromedriver,Java,Selenium,Selenium Webdriver,Selenium Chromedriver,我有以下问题: 当我运行自动化测试时,我在Chrome中不断收到以下警报“禁用开发人员模式扩展” 是否有办法删除/禁用此功能?。它是我的拦路虎,因为它让我无法通过一些测试 提前感谢这是因为您的一个扩展正在开发人员模式下运行。检查扩展列表并逐个禁用扩展,直到找到罪魁祸首 我使用AutoIT解决了这个问题 首先,您需要创建脚本 closechromewarning.au3: WinWaitActive("[CLASS:Chrome_WidgetWin_1]") Send("{ESC}") 需要将

我有以下问题: 当我运行自动化测试时,我在Chrome中不断收到以下警报“禁用开发人员模式扩展”

是否有办法删除/禁用此功能?。它是我的拦路虎,因为它让我无法通过一些测试


提前感谢

这是因为您的一个扩展正在开发人员模式下运行。检查扩展列表并逐个禁用扩展,直到找到罪魁祸首

我使用AutoIT解决了这个问题

首先,您需要创建脚本

closechromewarning.au3:

WinWaitActive("[CLASS:Chrome_WidgetWin_1]")
Send("{ESC}")
需要将脚本编译为
.exe
,然后将
.exe
放在路径中以便运行

使用c#语法关闭警告的函数:

Sleep(4000)
确实有效,但为了确保这一点,我把它提高到了
Sleep(5000)

调用CloseChromeDialog():


您是否尝试使用命令行参数禁用开发人员扩展

尝试使用以下Selenium WebDriver java代码:

System.setProperty("webdriver.chrome.driver", "D:\\chromedriver.exe");
ChromeOptions options = new ChromeOptions();
options.addArguments("--disable-extensions");
driver = new ChromeDriver(options);

我无法禁用扩展,因为我正在开发和测试扩展

我要做的是关闭此弹出窗口,如下所示:

  • 我使用Selenium加载带有扩展名的chrome
  • 然后我立即创建一个新窗口(通过
    SendKeys(Control-N)
    方法)。可以预见,在新窗口中3秒钟后会弹出“禁用开发人员模式扩展”弹出窗口
  • 我无法通过编程告诉它何时弹出(屏幕截图中没有显示),因此我只需等待4秒钟
  • 然后我通过
    driver.close()关闭选项卡(这也会关闭此新窗口)。Chrome将其视为“取消”,取消弹出窗口,保留原始窗口和选项卡

  • 我觉得这是必要的,因为弹出窗口干扰了正常的selenium浏览器交互,比如SendKeys,我用它切换选项卡和窗口。

    我也遇到了这个问题。解决方案是,如果使用maven,只需添加:

    -Dchrome.switches=--禁用扩展


    它将禁用所有扩展,您将不会面临此问题

    这已通过ChromeDriver.exe V2.23+Chrome 53.0的组合自动修复

    为了了解哪个chrome版本将使用哪个驱动程序,我们可以使用以下详细文档:


    享受自动化测试

    在Chrome54和chromedriver 2.25中解析

    我使用的是selenium Webdriver 2.53和chrome版本56.0.2924.87,我使用的chrome driver.exe是2.27。通过这种组合,它与

    System.setProperty("webdriver.chrome.driver", "./utilities/chromedriver.exe");          
    ChromeOptions options = new ChromeOptions();        
    options.addArguments("--disable-extensions");           
    DesiredCapabilities caps = new DesiredCapabilities().chrome();
    caps.setCapability(ChromeOptions.CAPABILITY, options);
    driver = new ChromeDriver(caps);
    

    尝试在ChromeDriver实例上方添加setProperty

    System.setProperty("webdriver.chrome.driver","C:/[PATH]/chromedriver.exe");
    driver = new ChromeDriver(capabilities);
    

    从Chromedriver v2.33开始,避免此消息的正确方法是传递到对象的
    excludeSwitchs
    参数。以下Java代码应该可以做到这一点,尽管我还没有测试它,因为我正在运行Python:

    ChromeOptions options = new ChromeOptions();
    options.setExperimentalOption("excludeSwitches", Collections.singletonList("load-extension"));
    
    正如其他人所指出的,罪魁祸首可能是Chrome自动化扩展,它在启动Chrome时由Chromedriver自动加载

    Chromedriver v2.33防止加载扩展的新开关:

    对ExcludeSwitchs功能的更新,该功能现在允许exclude--load扩展开关



    我怀疑此解决方案不需要您禁用所有扩展。您仍然可以手动加载其他浏览器。

    问题是我的chromedriver和chrome浏览器上都没有任何扩展。下面是我初始化chromedriver的方式:ChromeOptions=new ChromeOptions();options.addArguments(“--lang=es”);驱动程序=新的色度驱动程序(可选);你没有在Chrome上安装任何扩展吗?没有。我使用firefox上网,Chrome只是用于自动化测试。该弹出窗口不是阻止浏览器的警报。在谷歌上搜索解决方案,但找不到任何与之相关的东西。我正在运行chromedriver 2.9,这太奇怪了。你运行的是最新版本的Chrome吗?是的,最新版本是2.9。除非你打开开发者工具,否则弹出窗口不应该打开,反正你也不应该这样做。我还有最新版本的chrome。我没有说-我问你是否在chrome中打开开发者工具?没有,我只是浏览了几个页面,做了一些自动测试,然后弹出窗口。如果你点击了解更多链接,它将显示是Chrome自动化扩展导致对话框出现。自从Chrome34发布以来,我一直在想办法解决这个问题,但没有成功。谢谢你,这很好,不是它想要的解决方案,而是唯一有效的解决方案,直到谷歌修复了Chromeissue@elcharrua同意。我已经尝试了很多不同的方法来解决这个问题,这是迄今为止唯一有效的方法。我能够通过使用ChromeDriver v2.23丢失ChromeDriver v52.0.2743.116上的弹出窗口。好的,这段代码确实有效,但始终确保安装了最新的ChromeDriver!在最新的ChromeDriver(2.29)中似乎没有帮助,并且Chrome/ChromeDriver文档中没有列出
    --disable extensions
    。这在昨天和今天起作用,在windows update之后不再起作用。请确保Chrome驱动程序版本与Chrome浏览器版本兼容。否则它可能无法工作。它不适用于我的Chrome 57.0.2987.133和chromedriver.exe 2.29。我的初始化:
    ChromeOptions options=new ChromeOptions();options.addArguments(“--disable extensions”);选项。设置实验选项(“prefs”,prefs);options.setExperimentalOption(“ExcludeSwitchs”、Collections.singletonList(“启用自动化”);DesiredCapabilities=DesiredCapabilities.chrome();能力。设置能力(ChromeOptions.CAPABILITY,选项)
    
    System.setProperty("webdriver.chrome.driver","C:/[PATH]/chromedriver.exe");
    driver = new ChromeDriver(capabilities);
    
    ChromeOptions options = new ChromeOptions();
    options.setExperimentalOption("excludeSwitches", Collections.singletonList("load-extension"));