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

单击菜单链接时,Getting Element不是可单击的异常

翟元凯
2023-03-14
问题内容

我试图单击菜单链接,但没有任何运气。它总是显示
异常-

线程“主” org.openqa.selenium.WebDriverException中的异常:未知
错误:元素在点(64,64)处不可单击。其他元素将
获得点击:


我有以下html片段

<div id="RWR" class="clsDesktopHome" style="position: absolute; left: 0px; right: 0px; top: 0px; bottom: 0px; overflow: auto;">
    <div class="clsDesktop clsDesktopHomePage" style="width: 1553px; height: 430px; top: 0px; left: 15px;">
        <div id="foid:2" class="clsDesktopHeader clsTextOnDesktopColor">
            <div id="foid:1" class="clsDesktopTabs" style="margin-right: 230px; height: 28px; visibility: visible; width: auto;">
                <span class="clsDesktopTab clsDesktopTabActive clsDesktopTabTypeHome clsDesktopTabTypeHomeActive">
                    <span class="clsDesktopTabContent">
                        <span class="clsDesktopTabTypeIcon"></span>
                        <span class="clsDesktopTabMenuIcon"></span>
                        <span class="clsDesktopTabCollaborationIcon"></span>
                        <span class="clsDesktopTabCaption">Home</span>
                        <span class="clsDesktopTabCloseIcon"></span>
                    </span>
                </span>
                <span class="clsDesktopTab clsDesktopTabInactive clsDesktopTabCanClose clsDesktopTabTypeSheet">
                <span class="clsDesktopTab clsDesktopTabInactive clsDesktopTabCanClose clsDesktopTabTypeSheet">
                <span class="clsDesktopTab clsDesktopTabInactive clsDesktopTabCanClose clsDesktopTabTypeSheet">
                <span class="clsDesktopTab clsDesktopTabInactive clsDesktopTabCanClose clsDesktopTabTypeSheet">
                <span class="clsDesktopTab clsDesktopTabInactive clsDesktopTabCanClose clsDesktopTabTypeSheet">
                <span class="clsDesktopTab clsDesktopTabInactive clsDesktopTabCanClose clsDesktopTabTypeSheet">
                <span class="clsDesktopTab clsDesktopTabInactive clsDesktopTabCanClose clsDesktopTabTypeSheet">
                <span class="clsDesktopTab clsDesktopTabHidden clsDesktopTabNoCaption clsDesktopTabTypeTabsMenu">
                <span class="clsDesktopTab clsDesktopTabInactive clsAddNewContainer clsDesktopTabTypeAddNew">
            </div>
        <div class="clsDesktopBelowTabs" style="height: 325px; visibility: visible;">
        <div id="foid:2" class="clsDesktopFooter clsTextOnDesktopColor" style="height: 18px; line-height: 18px;">
    </div>
    <div class="clsModalNode" style="position: absolute; left: 0px; top: 0px; width: 0px; height: 0px; z-index: 10; background-color: rgb(0, 0, 0);"></div>
    <div style="position: absolute; left: 0px; top: 0px; width: 100%; height: 100%; z-index: 30; background-color: rgb(221, 221, 221); opacity: 0.4; display: none;"></div>
</div>

这就是快照的样子

我正在使用以下代码来实现相同目的-

    WebElement element = driver.findElement(By.xpath(".//*[@id='foid:1']/span[1]/span/span[4]"));
    WebDriverWait wait = new WebDriverWait(driver, 120);
    wait.until(ExpectedConditions.elementToBeClickable(element));

   //driver.findElement(By.xpath("//span[contains(text(), 'Home')]")).click();

    driver.findElement(By.xpath(".//*[@id='foid:1']/span[1]/span/span[4]")).click();

我确实检查了<div>接受点击的DOM中的标签。但是我看到

<div style="position: absolute; left: 0px; top: 0px; width: 100%; height: 100%; z-index: 30; background-color: rgb(221, 221, 221); opacity: 0.4;"></div>

具有一个附加属性,即 display:none;

使用以下配置:

  1. Selenium 3.0.1
  2. 司机-ChromeDriver
    我不知道要处理这种情况。

问题答案:

尝试等待直到获得点击的元素消失:

new WebDriverWait(driver, 10).until(ExpectedConditions.invisibilityOfElementLocated(By.xpath('//div[@style="position: absolute; left: 0px; top: 0px; width: 100%; height: 100%; z-index: 30; background-color: rgb(221, 221, 221); opacity: 0.4;"]')));

由于此答案被否决,我添加了更多详细信息来解释为什么它可以接受。

这是一个已知的问题(我个人已经遇到过几次)chromedriver:chromedriver有时会忽略模式窗口,例如“
正在进行页面加载”

并“认为”目标元素(由模式窗口覆盖)实际上是可见且可点击的,并试图使模式窗口接收到的点击。

因此,等到模态窗口消失才有意义。



 类似资料:
  • 我正在尝试点击一个菜单链接,但没有任何运气。它总是显示异常- 线程“main”org.openqa.selenium.WebDriverException中出现异常:未知错误:元素在点(64,64)处不可单击。其他元素将收到单击: 我有以下片段 这是一张快照- 我用下面的代码来完成同样的任务- 我检查了DOM中接受单击的 标记。但我看到了这个 带有一个附加属性,即 驱动程序- 我不知道如何处理这种

  • 我正在写一份时事通讯,你可以在这里找到: http://www.conrad-stanen.nl/nieuwsbrief/12_2015/ 所有链接工作正常。包括右侧的文本框和图像。 以电子邮件形式发送这种超文本标记语言格式适用于Mac邮箱,但对于Windows Outlook 2013,它会阻止右栏中的大部分链接,这意味着链接不可点击。 我已经尝试过使用带有模板的邮件黑猩猩,但它仍然会给出错误。

  • 我正在尝试单击一个菜单项,但是没有菜单项的webelements。 未单击菜单项时,web元素显示为: 单击菜单项后,Button标记就会改变。然而,菜单项的元素仍然是隐藏的。 菜单和单击后的图像在span标记中更改

  • 我有一个带有页眉和页脚的主JSP页面,而页面的内容位于另一个JSP页面中。我想点击菜单项并通过加载链接页面 我做什么: 这是index.jsp: 如果我点击第二个链接,我想包括page.jsp,只包含网页的中心部分的代码

  • 我无法单击子菜单。。尝试使用不同的xpath/id。。。。。 下面是html标签,主菜单是演示文稿(用红色箭头标记),子菜单在div下。 您能告诉我如何为此编写xpath吗。我想单击子菜单中的“假设”。 这里主菜单标签位于div(子菜单)的底部。 另附硒代码。请帮帮我。。。。

  • 问题内容: 是否可以在不使用JavaScript的情况下单击超链接来调用Java Servlet? 问题答案: 使超链接具有您在文件中为其定义的servlet映射的URL 。 所述元件限定了servlet和URL模式之间的映射。下面的示例将servlet映射到以开头的任何URL : 在此示例中,诸如的超链接将调用servlet。