Java ChromeDriver-禁用Selenium WebDriver automation上弹出的开发人员模式扩展
我有以下问题: 当我运行自动化测试时,我在Chrome中不断收到以下警报“禁用开发人员模式扩展” 是否有办法删除/禁用此功能?。它是我的拦路虎,因为它让我无法通过一些测试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}") 需要将
提前感谢这是因为您的一个扩展正在开发人员模式下运行。检查扩展列表并逐个禁用扩展,直到找到罪魁祸首 我使用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);
我无法禁用扩展,因为我正在开发和测试扩展 我要做的是关闭此弹出窗口,如下所示:
SendKeys(Control-N)
方法)。可以预见,在新窗口中3秒钟后会弹出“禁用开发人员模式扩展”弹出窗口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"));