通过 selenium web-driver java 确定在按下 Tab 键后选择了哪个 Web 表单元素?
Identifying which web form element is selected after pressing tab key via selenium web-driver java?
我正在使用 sendKeys(key,Keys.TAB) 方法在表单中导航。
Actions action = new Actions(driver);
CharSequence key = null;
for(int i=0;i<42;i++)
{
action.sendKeys(key,Keys.TAB).build().perform();
}
在每个操作结束时(按 Tab 键)我想知道选择了哪个表单元素
我想到达表单的第 42 个元素并交叉检查它是否是所需的元素,为此我需要检索它的一些信息。
我是 selenium 的新手,我无法找到实现此目标的方法。
您可以使用 WebDriver 的 TargetLocator
class 来达到这个目的。
WebElement currentElement = driver.switchTo().activeElement();
这将 return 您当前关注的当前元素。如果没有元素被聚焦,它将 return 你 body
元素,当你启动浏览器时就是这种情况。
在内部,它将 return 将元素 return 由 document.activeElement
编辑。所以要验证你总是可以 运行 as:
JavascriptExecutor js = (JavascriptExecutor) driver;
WebElement currentElement = (WebElement) js.executeScript("return document.activeElement");
我正在使用 sendKeys(key,Keys.TAB) 方法在表单中导航。
Actions action = new Actions(driver);
CharSequence key = null;
for(int i=0;i<42;i++)
{
action.sendKeys(key,Keys.TAB).build().perform();
}
在每个操作结束时(按 Tab 键)我想知道选择了哪个表单元素
我想到达表单的第 42 个元素并交叉检查它是否是所需的元素,为此我需要检索它的一些信息。 我是 selenium 的新手,我无法找到实现此目标的方法。
您可以使用 WebDriver 的 TargetLocator
class 来达到这个目的。
WebElement currentElement = driver.switchTo().activeElement();
这将 return 您当前关注的当前元素。如果没有元素被聚焦,它将 return 你 body
元素,当你启动浏览器时就是这种情况。
在内部,它将 return 将元素 return 由 document.activeElement
编辑。所以要验证你总是可以 运行 as:
JavascriptExecutor js = (JavascriptExecutor) driver;
WebElement currentElement = (WebElement) js.executeScript("return document.activeElement");