当前位置: 首页 > 面试题库 >

使用Java在Selenium WebDriver中聚焦元素的正确方法

通和裕
2023-03-14
问题内容

selenium.focus()WebDriver 的等效功能是什么?

element.sendKeys("");

要么

new Actions(driver).moveToElement(element).perform();

我已经尝试了这两种方法,并且它们都起作用,但是哪一个将始终对所有元素起作用?

对于任何元素(例如按钮,链接等),哪种方法是正确的?这对我很重要,因为该功能将在不同的UI上使用。


问题答案:

以下代码-

element.sendKeys("");

尝试查找输入标签框以输入一些信息,而

new Actions(driver).moveToElement(element).perform();

更适用,因为它适用于图像元素,链接元素,下拉框等。

因此,使用 moveToElement() 方法将重点放在网页上的任何常规WebElement上更为有意义。

对于输入框,您必须在元素上 单击() 以聚焦。

new Actions(driver).moveToElement(element).click().perform();

对于链接和图像,鼠标将悬停在该特定元素上,您可以根据要执行的操作决定在其上单击()。

如果输入代码上的click()不起作用-

由于您希望此功能是通用的,因此首先通过-检查webElement是否为输入标签。

if("input".equals(element.getTagName()){
   element.sendKeys("");
} 
else{
   new Actions(driver).moveToElement(element).perform();

}

您可以根据自己的喜好进行类似的更改。



 类似资料:
  • 问题内容: 是否可以使用该方法将div(或其他任何元素)聚焦? 我已经将tabIndex设置为div元素: 当我单击它时,我可以看到它被聚焦,但是,我试图动态地聚焦这样的元素: 或像这样: 但是触发事件时,组件不会获得焦点。我怎样才能做到这一点?我还有其他(非输入)元素可以使用吗? 编辑: 好吧,看来这实际上是有可能做到的:https : //jsfiddle.net/69z2wepo/54201

  • 问题内容: 我真的很惊讶,我在网上找不到使用Selenium Webdriver测试元素焦点的参考。 我想检查何时尝试提交表单而缺少必填字段时,焦点移到了空白字段。但是我看不到任何使用WebDriver API的方法。 我将能够使用JavascriptExecutor找到关注的元素。但是,阅读FAQ使我认为必须有某种方法可以使用驱动程序本身执行检查。 谢谢你的帮助。 问题答案: 将返回当前的焦点。

  • 我正在使用Selenium(Java版本)测试一个基于OpenLayers的API。 我想测试一个使用的功能。控制修改功能。我想单击绘制的特征(SVG),然后拖动并检查它们是否存在、可见或隐藏。 我已经画了一个多边形,并且选择了它。见下图: 这些SVG元素的HTML如下所示: 假设我想选择红点。 我试过: 但是它总是返回一个空列表。 我做错了什么?有人能帮我吗? 多谢了。 编辑1-功能:垂直显示可

  • 问题内容: 我的网站上有一个选择控件。我正在使用页面对象与页面进行交互。如果我这样做(在我的课程下的前两行和我的方法中) 它以空指针失败。我也尝试了没有。 现在,如果我在我的方法中执行此操作,则一切正常,然后选择正确的项目 这是该控件的实际网页摘要(已编辑以保护无辜者) 让我说我可以解决我的问题, 但是 我不明白为什么“ 正常 ”路径无法正常工作。 问题答案: 那是因为该类具有以下构造函数: 见J

  • 我的AUT有不同的选项卡来测试和验证不同的WebElements,这些选项卡上有几乎相同的属性。我需要验证一个下拉搜索框,并验证下拉列表中的选项。我的脚本找不到这个下拉搜索框,而xpath在firebug中工作得非常好,可以识别搜索框。 显示的错误为: 请告诉我什么可能是错误的,以及为什么Selenium不能使用xpath定位元素,而它在xpath中运行良好。另外,如果我的xpath不正确,请告诉

  • 我创建了一个元素列表,我想更新其中一个列表元素 这是对update方法的调用: 这是更新方法: 在该方法中,我收到警告“从方法生成函数”,并建议“方法‘update\elem’可能是‘static’” 更新列表元素而不收到警告的正确方法是什么?