【发布时间】:2020-12-02 19:24:45
【问题描述】:
如何测试 Selenium RC 中哪个元素具有焦点?
【问题讨论】:
标签: selenium selenium-rc
如何测试 Selenium RC 中哪个元素具有焦点?
【问题讨论】:
标签: selenium selenium-rc
以下定位器应选择文档中的活动元素:
dom=document.activeElement
如果表单字段或类似元素具有焦点,则它应该是活动元素。 希望这会有所帮助。
【讨论】:
driver.switch_to.active_element
正如 AlistairH 所提到的,您可以在大多数当前浏览器上使用 document.activeElement。要在 Selenium 中使用它,您可以存储活动元素并将其与活动元素进行比较。下面是 Selenium IDE 的示例,它也应该为您指明 Selenium RC 的正确方向。
storeEval | this.browserbot.findElement("name=targetElement").id; | targetElement
storeEval | this.browserbot.getUserWindow().document.activeElement.id; | activeElement
verifyEval | '${targetElement}' | ${activeElement}
请注意,以上内容依赖于分配了唯一 id 的元素。
【讨论】:
另一种测试方法(假设您使用的是 JQuery 或 Sizzle)是使用我编写的一个简单库,它允许 Selenium 测试使用 :focus 选择器查询 DOM,例如 .is(':focus') 或 $( ':重点')。
有关更多信息,请参阅http://blog.mattheworiordan.com/post/9308775285/testing-focus-with-jquery-and-selenium-or,我在其中解释了 Selenium 测试 :focus 无法开箱即用的原因,以及如何解决此问题。
【讨论】:
源代码:
<div class="box_container">
<input type="text" value="" name="to_hidden" id="to:12982f12165_hidden" class="left_to_right" autocomplete="off" style="display: none;">
<textarea id="to:12982f12165" name="to" style="overflow: hidden; height: 18px;" class="left_to_right" autocomplete="OFF">
</textarea>
</div>
硒代码: 1种方法:
String searchValue=selenium.getEval("var test=document.activeElement;");
2方法:
String testvalue=selenium.getText("css=#div textarea[class='left_to_right']:focus");
【讨论】: