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

Selenium-无法单击动态可见菜单

齐思淼
2023-03-14

我有一个菜单,其中有li(列表)元素,当你鼠标悬停一个特定的标签后启用。

    driver.get("www.snapdeal.com");   Actions actions = new Actions(driver);
    actions.moveToElement(driver.findElement(By.id("loggedOutAccount"))).build().perform();
    //Wait for 5 Secs
   driver.findElement(By.className("accountLink")).click();// Here it's throwing Element not visible exception

此代码正在正确执行鼠标悬停,但无法单击“登录链接”链接。尽管手动检查元素是否可见

DOM结构-

<div id="loggedOutAccount" class="hd-rvmp-logout">
<a class="signIn" href="javascript:void(0);">
<i class="iconHeader accountUser"></i>
<label class="my-account-lang"> My Account</label>
<i class="mar_2_left right-downArrow breadcrumbArrow-down"></i>
</a>
<div class="sdNavDropWrapper accDetails" style="display: none; z-index: 999;">
<ul class="positionAbsolute pull-right">
<li class="customLoggedInState">
<div class="left triangle"></div>
<div class="right triangle"></div>
<div>
<a class="accountLink" href="javascript:void(0);">Click here to sign in ></a>
</div>
</li>
<li class="stop-event">
<li class="stop-event">
<li class="stop-event">
<li class="stop-event">
<li class="stop-event">
</ul>
</div>
</div>

共有1个答案

东门清夷
2023-03-14

请对这两个元素使用xpath,如下所示:

driver.get("www.snapdeal.com");   
Actions actions = new Actions(driver);
actions.moveToElement(driver.findElement(By.xpath("yourxpathhere"))).build().perform();

driver.findElement(By.xpath("yourxpathhere")).click();

我认为class/Id对其他元素的重复也是为了样式目的。所以Xpath最好找到唯一的元素。

 类似资料:
  • 在测试我的Web应用程序时,我无法单击菜单项(创建缺陷…),如图所示 下面的代码点击图像(手部图像),如图所示 然后菜单打开。现在我想单击菜单项。我正在为此使用下面的代码 但我得到了上面提到的例外。 这是我在网页上的内容: 你能建议一下吗?

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

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

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

  • 问题内容: 我正在使用Selenium和Java,无法单击模式内的元素。场景是这样的:单击框架内的项目后,它会打开一个模态,我需要单击此模态内的一个元素,但我无法获取它。 我已经尝试过: 我也尝试过使用switchTo()这样: 这是我的模态的HTML: 这是从firefox开发工具获取的CSS路径: 永远找不到对象。 问题1:如果元素在模态内部必须进行不同的管理? 问题2:如何最后单击按钮 sa

  • 我正在使用Selenium和java,我无法单击模态中的元素。场景是这样的:单击框架内的项目后,它会打开一个模态,我需要单击此模态中的一个元素,但我无法获得它。 我已经尝试过: 我也尝试了用SwitchTo()这样做: 以下是我的modal的html: 这是来自firefox开发工具的CSS路径: 该对象永远找不到。 问题1:如果一个元素在一个模态中,必须以不同的方式管理? 问题2:如何最终让保存