繁体   English   中英

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

[英]In Selenium how do I find the “Current” object

我希望 Selenium 通过箭头键导航菜单——首先单击顶部菜单项,然后按“向下”、“向下”、...

问题是你必须总是提供一个特定的元素来发送“DOWN”。

有没有办法获取当前元素?

我试过了:

by.xpath(".")

但它说表达式无法识别或没有返回正确的对象。

我希望我只是错过了一些愚蠢的技巧。

在 Selenium 2.0 中,如果您使用WebDriver来驱动浏览器中的测试,您可以使用WebDriver.TargetLocator类在窗口/框架中获取焦点元素:

WebDriver driver = ... // initialize the driver
WebElement currentElement = driver.switchTo().activeElement();

如果没有元素处于焦点,则活动元素将变成正在显示的文档body ,例如,当您启动新页面时可能就是这种情况。 当您调用clicksendKeys等方法时,您会发现上述调用返回的WebElement将始终代表焦点中的元素。

这是使用FirefoxDriver测试的,我怀疑其他驱动程序也是如此,除了HtmlUnitDriver和类似的驱动程序,它们在引擎盖下不使用成熟的浏览器。

在蟒蛇中:

element = driver.switch_to.active_element

不知道比访问document.activeElement更直接的方法

如何测试 Selenium RC 中哪个元素具有焦点?

在红宝石/水豚中:

page.driver.browser.switch_to.active_element

请注意,这将返回一个Selenium::WebDriver::Element而不是Capybara::Node::Element

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM