12

如果浏览器窗口不在焦点上,则当前页面上的所有 webdriver 标识都会失败。

如何使用 webdriver 使浏览器成为焦点?

4

5 回答 5

8
((JavascriptExecutor) webDriver).executeScript("window.focus();");

应该做的伎俩!

于 2012-05-22T10:50:59.970 回答
7

executeScript("window.focus();") 在最新的 Chrome 中对我不起作用(在本文发布时为 v47)

但是,我在另一个问题中发现了一个 hack,它在这个版本的 Chrome中确实有效。

以下是通用步骤,因为问题没有指定 Selenium API 语言:

  1. 通过在浏览器中执行脚本来显示警报
  2. 接受警报

中的实现webdriverjs,我正在使用

const chrome = setupChromeWebdriver(); // get your webdriver here

chrome.executeScript('alert("Focus window")'))
  .then(() => chrome.switchTo().alert().accept());
于 2015-12-22T23:54:04.853 回答
2

这对我有用。在打开浏览器的代码之后,发出以下代码段:

String window = driver.getWindowHandle();
((JavascriptExecutor) driver).executeScript("alert('Test')");
driver.switchTo().alert().accept();
driver.switchTo().window(window);
于 2018-03-03T00:37:10.460 回答
1

Selenium 3.0 采用了这个:

((IJavaScriptExecutor)po.WebDriver).ExecuteScript("window.focus();");
于 2016-11-10T22:07:04.650 回答
0

将焦点设置在“驱动程序选项”应该可以:

InternetExplorerOptions options = new InternetExplorerOptions();
options.setCapability("requireWindowFocus", true);
于 2019-04-08T15:12:18.253 回答