我试图将Opera添加到Selenium Grid上的某个节点,但遇到关闭Opera浏览器的问题。在Opera中,关闭浏览器中的最后一个选项卡不会关闭浏览器。它改为启动名为Speed Dial的东西。这显然是Opera中的默认行为。我试图禁用快速拨号,但它似乎不会阻止此行为。
由于测试通过RemoteWebDriver运行,我无法在Opera节点上调用脚本来关闭窗口。
我尝试过传统方法,关闭标签,但Opera启动空白或快速拨号标签:
driver.close();
driver.quit();
我尝试过执行操作并将密钥发送到html正文:
Actions action = new Actions(driver);
action.sendKeys(driver.findElement(By.xpath("//body")),Keys.CONTROL, Keys.SHIFT, "W");
action.build().perform();
driver.quit();
我还尝试过构建动作并将密钥发送到以太网中:
Actions action = new Actions(driver);
action.sendKeys(Keys.CONTROL, Keys.SHIFT, "W");
action.build().perform();
driver.quit();
是否有人为此功能找到了合适的解决方法'?
答案 0 :(得分:1)
我找到了this issue。
所以感谢Kryshtopenko的解决方案是:
对于Windows:
Runtime.getRuntime().exec("taskkill /f /im opera.exe");
对于macOS:
Runtime.getRuntime().exec("pgrep 'Opera' | xargs kill");
答案 1 :(得分:0)
我找到了解决方法。我的代码是在C#
Utility.Instance.KillProcess("opera");
System.Windows.Forms.SendKeys.SendWait("{ESC}");
Utility.Instance.KillProcess("operadriverserver");
希望它会对你有所帮助。