当前位置: 首页 > 知识库问答 >
问题:

元素无法滚动到视图中(即使它就在视图中)

王炜
2023-03-14

我使用Selenium在一个有多个下拉菜单的页面上运行测试(特别是一个弹出页面,允许您选择一些选项然后关闭它)。我可以点击这些菜单中的一些完全罚款;但是,其中一些会抛出ElementNotInteractable异常,消息为“Element不能滚动到视图中”,即使菜单是紧挨着的。我很困惑为什么一个菜单有效,而另一个却不有效,尽管它们看起来是一样的。为了点击菜单,我尝试了三种方法:

a)常规硒点击:

driver.findElement(By.xpath("//select[@foo='bar']").click();


这是其他菜单的工作原理,除了我直接导航到“选项”标签并单击它(不需要先单击下拉)

b)Javascript执行

JavascriptExecutor executor = (JavascriptExecutor)driver;
executor.executeScript("arguments[0].click();", element);


当我使用这个时,不会引发异常;然而,菜单仍然是空的,这让我相信它没有被点击。

Actions builder = new Actions(driver);
builder.moveToElement(menu).click(menu);
builder.perform();

编辑:我尝试了在类似问题中找到的解决方案;不幸的是,它不起作用。解决方案是添加显式等待,因为元素可能没有完全加载,这只会导致超时。

共有1个答案

马奇略
2023-03-14

您可以在调试模式下使用chrome开发工具:1-在异常行放置断点,2-在chrome控制台中使用$x(“//select[@foo='bar']”)获取元素。

要选择值,可以使用org.openqa.selenium.support.ui.select对象:

new Select(element).selectByValue(value);
 类似资料:
  • 我正在尝试用Selenium选择一个值。 你能帮我纠正一下情况吗?

  • 我正在尝试使用java和Eclipse学习Selenium。我试图找到网页中的一个元素。 我尝试使用这行代码单击一个html元素: 下图显示了页面的html结构:

  • 有人能帮我一下吗:检查元素代码是。 代码为:

  • 我正在为我的公司自动化IdentiGO应用程序,并得到以下错误: 下面是我的代码,由于与我的问题无关,所以省略了导致该页面的脚本。 在此代码之前的页面上,用户选择约会日期和时间;我希望脚本等待“开始”按钮被推,然后在下面的截图中点击“继续”: null https://jsfiddle.net/khf4tym3/ 当我单击“View page source”时,弹出的html不会显示在源代码中,所

  • 问题内容: Selenium 1.x或2.x中是否可以滚动浏览器窗口,以使XPath标识的特定元素在浏览器的视野中?Selenium中有一个聚焦方法,但是在FireFox中似乎并没有实际滚动视图。有人对此有任何建议吗? 我需要这样做的原因是我正在测试页面上某个元素的点击。不幸的是,除非该元素可见,否则该事件似乎不起作用。我无法控制单击元素时触发的代码,因此无法调试或对其进行修改,因此,最简单的解决

  • 错误是“元素输入class=”whsond zhqkbf“name=”password“type=”password“无法滚动到视图中”