使用Selenium Webdriver测试元素是否聚焦

Sam*_*ens 11 c# selenium webdriver selenium-webdriver

我真的很惊讶我在互联网上找不到使用Selenium Webdriver测试元素焦点的参考资料.

我想检查何时尝试使用必填字段提交表单提交时,焦点将移至空字段.但我无法使用WebDriver API看到任何方法.

我将能够使用JavascriptExecutor找到焦点元素.但阅读常见问题解答让我觉得必须有一些方法来使用驱动程序本身执行检查.

谢谢你的帮助.

Dan*_*all 27

driver.switchTo().activeElement()将返回目前的焦点WebElement.平等定义明确WebElement,所以你可以打电话element.equals(driver.switchTo().activeElement()).

调用有点误导性的名字driver.switchTo().activeElement()实际上并没有切换焦点,也没有driver.findElement(),所以你不需要在switchTo().defaultContent()之后; 事实上,这样做可能会模糊当前元素.


Ran*_*ray 5

driver.switchTo().activeElement();
Run Code Online (Sandbox Code Playgroud)

返回当前聚焦的元素。

确保使用后切换回来

driver.switchTo().defaultContent();
Run Code Online (Sandbox Code Playgroud)

此外,如果没有焦点,则body返回文档的内容。

也看看这个问题。

在 Selenium 中如何找到“当前”对象

  • Daniel 的回答是 `switchTo().defaultContent()` 是不正确的。 (2认同)