在硒中,我如何找到“当前”对象

2022-09-01 19:49:05

我想让Selenium通过箭头键导航菜单 - 从单击顶部菜单项开始,然后按“向下”,“向下”,...

问题是,您必须始终提供要将“DOWN”发送到的特定元素。

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

我试过了:

by.xpath(".")

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

我想我只是错过了一些愚蠢的把戏。


答案 1

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

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

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

这是使用 进行测试的,我怀疑其他驱动程序也是如此,除了那些不使用完整浏览器的类似驱动程序。FirefoxDriverHtmlUnitDriver


答案 2

在 python 中:

element = driver.switch_to.active_element

推荐