如果浏览器窗口不在焦点上,则当前页面上的所有 webdriver 标识都会失败。
如何使用 webdriver 使浏览器成为焦点?
((JavascriptExecutor) webDriver).executeScript("window.focus();");
应该做的伎俩!
executeScript("window.focus();")
在最新的 Chrome 中对我不起作用(在本文发布时为 v47)
但是,我在另一个问题中发现了一个 hack,它在这个版本的 Chrome中确实有效。
以下是通用步骤,因为问题没有指定 Selenium API 语言:
中的实现webdriverjs
,我正在使用
const chrome = setupChromeWebdriver(); // get your webdriver here
chrome.executeScript('alert("Focus window")'))
.then(() => chrome.switchTo().alert().accept());
这对我有用。在打开浏览器的代码之后,发出以下代码段:
String window = driver.getWindowHandle();
((JavascriptExecutor) driver).executeScript("alert('Test')");
driver.switchTo().alert().accept();
driver.switchTo().window(window);
Selenium 3.0 采用了这个:
((IJavaScriptExecutor)po.WebDriver).ExecuteScript("window.focus();");
将焦点设置在“驱动程序选项”应该可以:
InternetExplorerOptions options = new InternetExplorerOptions();
options.setCapability("requireWindowFocus", true);