如何使用JAVA在Selenium WebDriver中打开Chrome Developer控制台

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

任何人都可以告诉我如何在打开开发人员控制台的情况下启动我的测试,因此我可以捕获/观察测试执行期间发生的控制台错误。

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

使用--auto-open-devtools-for-tabs

此标记使每个标签的Chrome自动打开DevTools窗口。 它旨在供开发人员和自动化使用,不需要用户交互来打开DevTools。

资源

您是否尝试过模拟按键事件以获取在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 

希望这可以帮助。

有用的链接,如果它确实让你到处: 如何使用Java处理Selenium WebDriver中的新窗口?

编辑:重新阅读问题,不要认为这无论如何都会有效。 您的unit testing应该捕获代码逻辑中的错误。 您的selenium测试应仅测试用户旅程并在用户旅程缩短时捕获错误。 你永远不应该通过selenium测试来测试代码逻辑/错误。