使用 Selenium Webdriver 测试某个元素是否获得焦点
我真的很惊讶我在互联网上找不到使用 Selenium Webdriver 测试元素焦点的参考资料。
我想检查当尝试提交表单但缺少必填字段时,焦点何时移至空字段。但我看不到任何使用 WebDriver API 执行此操作的方法。
我将能够使用 JavascriptExecutor。但是阅读FAQ 让我认为必须有某种方法使用驱动程序本身来执行检查。
感谢您的任何帮助。
I'm really surprised I can't find references on the internet to testing for element focus using Selenium Webdriver.
I'm wanting to check when when a form submission is attempted with a mandatory field missed, focus is moved to the empty field. But I cannot see any way to do this using the WebDriver API.
I will be able to find the focused element using a JavascriptExecutor. But reading the FAQ makes me think there must be some way to perform the check using the driver itself.
Thanks for any help.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
发布评论
评论(5)
driver.switchTo().activeElement();
返回当前聚焦的元素。
确保在使用后切换回来。
driver.switchTo().defaultContent();
此外,如果没有焦点,则返回文档的 body
。
也看看这个问题。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
driver.switchTo().activeElement()
将返回当前聚焦的WebElement
。WebElement
定义了良好的相等性,因此您可以调用element.equals(driver.switchTo().activeElement())
。调用稍有误导性的
driver.switchTo().activeElement()
实际上不会切换焦点,driver.findElement()
也不会,因此您不需要 <代码>switchTo().defaultContent() 之后;事实上,这样做可能会模糊当前元素。driver.switchTo().activeElement()
will return the currently focusedWebElement
. Equality is well defined forWebElement
, so you can callelement.equals(driver.switchTo().activeElement())
.Calling the slightly misleading named
driver.switchTo().activeElement()
does not in fact switch focus, neither doesdriver.findElement()
, so you do not need toswitchTo().defaultContent()
after; in fact, doing so would probably blur the current element.