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

Selenium:无法点击菜单项

王鹏飞
2023-03-14

在测试我的Web应用程序时,我无法单击菜单项(创建缺陷…),如图所示

**org.openqa.selenium.ElementNotVisibleException: Cannot click on element**

下面的代码点击图像(手部图像),如图所示

driver.findElement(By.xpath("//div[@id='divToolbar']/div/table/tbody/tr/td[2]")).click();

然后菜单打开。现在我想单击菜单项。我正在为此使用下面的代码

     driver.findElement(By.xpath("html/body/div[10]/div/div/div/div/div/ul/li[1]")).click();

但我得到了上面提到的例外。

这是我在网页上的内容:

<div class="mmenu" style="display: block; left: 49px; top: 37px;">
<div class="mmenu-content">
<div class="mmenu-border" style="width: 231px;">
<div class="mmenu-inset" style="width: 231px;">
<div class="mmenu-group first-child last-child">
<div class="mmenu-column first-child last-child">
<h3>
<ul>
<li id="liemx360120335239.81635" class="link" menuuid="emx360120335239.81635">
<span class="icon">
<span>Create Defect...</span>
</li>
<li id="liemx172704021676.66638" class="link" menuuid="emx172704021676.66638">
</ul>
</div>
</div>
</div>
</div>
</div>
</div>

你能建议一下吗?

共有2个答案

骆文彬
2023-03-14

我想你的问题是第二个菜单是不可见的,如果WebDriver在一个不可见的定位器上操作,就会抛出< code > ElementNotVisibleException 。我认为你必须保持第一个菜单打开,当你点击第二个菜单时,它才是可见的。我使用动作类。尝试执行以下操作:

new Actions(getWebDriver()).moveToElement(driver.findElement(By.xpath(...))).perform();

然后尝试单击第二个定位器。如果您仍然有问题,请尝试将两个命令链接到同一个操作中。

阮喜
2023-03-14

你有没有试过driver.findElement(By.xpath("//span[包含(text(),'Create Defect…']")). Click();

 类似资料:
  • 我正在尝试为我的WebApp选择菜单选项,可以点击菜单,菜单选项也可见,但无法点击菜单选项。 从Selenium API中,如果我试图检查菜单选项的可见性,它会说不可见,但实际上它已经在屏幕上可见了。 是否有使用Selenium IE驱动程序选择菜单和菜单选项的标准。 以下是菜单/菜单选项代码: 在上面的菜单选项代码中,我需要单击角色选项。这个选项在点击配置菜单上是可见的,但是点击任何这样的菜单选

  • 我有一个菜单,其中有li(列表)元素,当你鼠标悬停一个特定的标签后启用。 此代码正在正确执行鼠标悬停,但无法单击“登录链接”链接。尽管手动检查元素是否可见 DOM结构-

  • 嗨,我正在尝试自动启动下拉菜单。默认情况下,它的可见性是隐藏的。将鼠标悬停在它上面时,它的可见性属性显示为可见。我可以单击下拉菜单,但是在单击下拉菜单后,我的selenium脚本不能从下拉菜单中选择值。 错误:线程"main"org.openqa.selenium.ElementNotVisibleException异常:无法单击元素 HTML代码段

  • 我有在下拉列表中选择每个选项的测试用例,但无论我目前做什么,我都会遇到这个错误。 结果消息:系统。InvalidOperationException:元素在点(1170.0333251953125405.4250030517578)处不可单击,因为另一个元素遮挡了它 目前正试图用这个代码改变年份 - WebElement是这样定义的 这是selenium尝试选择拾取时下拉列表的样子。我看不到任何东

  • 我试图创建一个自动的网络会话,我登录到一个网站,并从下拉框中选择一个选项。我能够使用硒进入页面,但我无法点击打开下拉菜单的栏,然后选择我想要的选项。这是页面的截图,它的超文本标记语言代码:[![在此输入图像描述][1]][1][![在此输入图像描述][2]][2] 我想单击下拉列表中的“降级性能”选项。我有点被困在这里,因为下拉列表的HTML与[this one][3]根本不相似(无法“选择”)。

  • 我试图用硒点击“下一页”按钮,但没有成功。我使用了正确的CSS选择器还是应该把它换成别的东西?