java - 获取“无法激活网络视图”
问题描述
我收到一个错误。当我进行谷歌搜索时,我得到了一些结果,但它们都是针对 Android 编程的。我正在使用 Windows、Java 1.8 和 Selenium 自动化测试。
错误
org.openqa.selenium.WebDriverException: unknown error: cannot activate web view
我的原始代码(我没有编写但正在调试并且已经工作):
// Clicks a link which opens a new window
action.moveToElement(el).click(el).build().perform();
Set<String> windows = driver.getWindowHandles();
for (String a: windows) {
Reporter.log(a);
driver.switchTo().window(a);
}
我得到的错误是“没有这样的窗口”。所以我想也许我需要等到窗口数量稳定下来,所以我在点击之后和在做窗口之前添加了以下内容:
int winds = driver.getWindowHandles().size();
int owinds = winds - 1;
while (owinds != winds) {
Thread.sleep(1000);
owinds = winds;
winds = driver.getWindowHandles().size();
}
正是在这一点上,它进行了切换,我得到了
org.openqa.selenium.WebDriverException: unknown error: cannot activate web view
正如我之前提到的,Google 中的所有内容都只谈论 Android,而事实并非如此。
任何想法都会受到欢迎。
解决方案
我在使用 Webdriver.io 的 JavaScript 中遇到了这个问题。我正在回答,因为它具有此处描述的相同特征,特别是我正在打开一个新选项卡并且我会收到此错误。
我首先向我的 docker 容器添加了更多的内存/资源,然后得到了一个通过这个答案解决的问题:https ://stackoverflow.com/a/52340526/491553 。
一旦我应用了以下 Chrome 参数,我就再也没有看到这个:
"--no-sandbox",
"--disable-infobars", // https://stackoverflow.com/a/43840128/1689770
"--disable-dev-shm-usage", // https://stackoverflow.com/a/50725918/1689770
"--disable-browser-side-navigation", // https://stackoverflow.com/a/49123152/1689770
"--disable-gpu", // https://stackoverflow.com/questions/51959986/how-to-solve-selenium-chromedriver-timed-out-receiving-message-from-renderer-exc
"--disable-features=VizDisplayCompositor" // https://stackoverflow.com/a/55371396/491553
推荐阅读
- python - scikit learn train_test_split() 意外拆分数据
- python - 将 Python&React 部署到 heroku
- python - Pytest 和 Django,创建模块范围的固定装置的正确方法
- javascript - 如何使响应以不同的顺序显示?
- javascript - 如何从侧边实现球和正方形之间的碰撞检测?
- blazor - Blazor WebAssembly 项目实时更新不起作用
- yaml - 如何将默认工作流(github 操作)发布到 git hub 市场?
- java - 有没有办法将参数插入到 sql avg 查询中?
- flutter - 在什么情况下应该使用 listview 而不是 listview.builder?
- sql-server - SQL Server db_datareader 无法将表编写为脚本,缺少什么权限?