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

在单击菜单链接时,获取元素不是可单击的例外

胥英奕
2023-03-14

我正在尝试点击一个菜单链接,但没有任何运气。它总是显示异常-

线程“main”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();

我检查了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>

带有一个附加属性,即显示:无;

  1. 硒3.0.1
  2. 驱动程序-ChromeDriver

我不知道如何处理这种情况。


共1个答案

匿名用户

尝试等待,直到被单击的元素消失:

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有时会忽略模态窗口,如“页面加载正在进行”

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

所以等待模态窗口消失是有意义的。

相关问题


  • AngularJS-nested ng-使用select/option重复,获取/设置所选值
  • Angular JS父范围单击处理程序未销毁
  • 当DOM元素改变时,ng-模型变量不更新
  • Angular 2-如何使用ngIF获取输入的有效状态
  • 获取触发$watch的对象属性
  • Javafx:链接fx:id-s
  • 从事件中获取应用程序类
  • 为什么在BorderPane中添加另一个元素会打乱我的格式?
  • 如何在FXML控制器中获取父窗口?
  • 如何在Javafx2控制器中获取初级阶段引用
  • 使用java代码获取FXML文件节点
  • JavaFx:如何为一个节点的给定样式类获取对应的样式表?
  • 如何获取JavaFX菜单的父菜单栏
  • javascript中有没有一种方法可以从数组中检索随机对象,并通过单击按钮将它们随机分配给divny?
  • JavaFX2 FXML如何动态添加元素(例如按钮)
  • 如何在JavaFX中设置TabPane下拉菜单的样式
  • 使用映射结构从外部对象获取内部对象
  • 将 ArrayList 中的对象序列化为 XML 时丢失类型元素
  • 在React中为命名函数获取“import/no-namany-default-import”警告
  • 使用 Eclipselink JPA 通过代码(不是 ID)链接两个对象

共有3个答案

凤凡
2023-03-14
热门标签
夏涵畅
2023-03-14
相关问题
法子昂
2023-03-14

尝试等待,直到被单击的元素消失:

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有时会忽略模态窗口,如“页面加载正在进行”

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

所以等待模态窗口消失是有意义的。

 类似资料:
  • 问题内容: 我试图单击菜单链接,但没有任何运气。它总是显示 异常- 线程“主” org.openqa.selenium.WebDriverException中的异常:未知 错误:元素在点(64,64)处不可单击。其他元素将 获得点击: 我有以下片段 这就是快照的样子 我正在使用以下代码来实现相同目的- 我确实检查了接受点击的DOM中的标签。但是我看到 了 具有一个附加属性,即 ; 使用以下配置:

  • 这是我的问题。 我有一个像这样的简单表格(示例): null null 并且我正在尝试列的名称,同时单击元素。 我想这可能是一个简单的解决办法但我找不到。 提前致谢

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

  • 我在运行selenium TestCases时收到以下错误。使用版本Firefox45和selenium-server-standalone 2.52。