Notice: Undefined index: in /data/phpspider/phplib/misc.function.php on line 226
如何使用JAVA在SeleniumWebDriver中打开ChromeDeveloper控制台_Java_Selenium Webdriver - Fatal编程技术网

如何使用JAVA在SeleniumWebDriver中打开ChromeDeveloper控制台

如何使用JAVA在SeleniumWebDriver中打开ChromeDeveloper控制台,java,selenium-webdriver,Java,Selenium Webdriver,我想问一下如何在selenium测试执行期间打开Chrome开发者控制台。当前,当测试正在执行时,我手动打开控制台点击F12,测试立即停止响应,并在一段时间后失败 有人能告诉我如何在开发者控制台打开的情况下启动测试,这样我就可以捕获/观察测试执行过程中出现的控制台错误。注意:这个答案不适用于当前版本的Chrome 你不能。Chrome驱动程序使用Chrome远程调试协议与浏览器通信。这与开发人员控制台使用的协议相同。不幸的是,Chrome的设计使得使用该协议一次只能连接一个客户端,这意味着开发人

我想问一下如何在selenium测试执行期间打开Chrome开发者控制台。当前,当测试正在执行时,我手动打开控制台点击F12,测试立即停止响应,并在一段时间后失败

有人能告诉我如何在开发者控制台打开的情况下启动测试,这样我就可以捕获/观察测试执行过程中出现的控制台错误。

注意:这个答案不适用于当前版本的Chrome


你不能。Chrome驱动程序使用Chrome远程调试协议与浏览器通信。这与开发人员控制台使用的协议相同。不幸的是,Chrome的设计使得使用该协议一次只能连接一个客户端,这意味着开发人员工具或驱动程序,但不能同时连接两者。

您是否尝试过模拟按键事件以在Chrome中打开开发工具的快捷方式

String openDevTools = Keys.chord(Keys.ALT, Keys.CONTROL, "i");
driver.findElement(By.ByTagName("body")).sendKeys(openDevTools);
这并不理想,在严格的测试制度下,您需要平台检测来确保覆盖Mac和Windows。我绝对建议你避免这样做(即使它有效),但如果你真的必须这样做的话,这是一个可行的解决办法

我有一种感觉,如果你这样做的话,它也可能会失去窗口本身的焦点。如果是这种情况,您需要以下内容:-

String parentHandle = driver.getWindowHandle(); // get the current window handle
// do your dev tool stuff here
driver.switchTo().window(parentHandle); // switch back to the original window
希望这有帮助

有用的链接,如果它确实让你去任何地方:

编辑:只需重新阅读问题,无论如何都不要认为这会奏效。单元测试应该捕获代码逻辑中的错误。selenium测试应该只测试用户行程,并在用户行程缩短时捕获错误您不应该通过selenium测试来测试代码逻辑/错误。

使用
--自动打开选项卡的devtools

此标志使Chrome自动为每个选项卡打开DevTools窗口。它旨在供开发人员和自动化人员使用,以避免在打开DevTools时需要用户交互


这在webdriver.io(wdio.conf.js)中对我有用


@Uziii伐木!!没有别的事了你确定吗?当我的Selenium脚本正在运行时,我可以按F12键,它将打开Chrome开发工具,脚本将继续运行……在两年前编写时,这个答案中的信息是正确的。当然,Chrome团队在此期间继续改进浏览器及其开发工具,我相信调试协议现在支持多个客户端。@JimEvans我在答案中添加了一条注释,希望你不介意,请随意改写/随便什么,但我认为这可能与一些评论无关,这些评论指出事情已经发生了变化,特别是考虑到这个问题仍然相关,而且这个答案也得到了相对较好的支持。那么,在从.js selenium脚本启动chrome webDriver时,我如何使用这个标志呢?是否可以通过某种方式将其传递给webdriver builder的.withCapabilities()方法?使用
ChromeOptions
->
options.addArguments(“--auto open devtools for tabs”)
const configs = {
  chrome : {
    maxInstances: "5",
    browserName: "chrome",
    chromeOptions: {
      args: ['--window-size=1280,800', '--auto-open-devtools-for-tabs'],
      binary: '/Applications/Google\ Chrome.app/Contents/MacOS/Google\ Chrome'
    }
  },
  firefox : {
    maxInstances: "5",
    browserName: "firefox"
  },
  headless : {
    maxInstances: "5",
    browserName: "chrome",
    chromeOptions: {
      args: ['--headless', '--disable-gpu', '--window-size=1280,800'],
      binary: '/Applications/Google\ Chrome.app/Contents/MacOS/Google\ Chrome'
    }
  },
}