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

元素不可点击,因为在python中另一个元素将其遮蔽

弓晔
2023-03-14

我正在尝试自动化访问点web配置。在此期间,我会弹出一个我想要点击的窗口(类似于“是”和“否”的叠加

我试图单击的覆盖层的HTML代码:

<div id="generic-warning-dialog" class="dialog exclamation text-orphan" style="">
<div class="warning-content dialog-content text-orphan">Security Mode is disabled on one or more of your wireless networks. Your network could be open to unauthorized users. Are you sure you wish&nbsp;to&nbsp;proceed?</div>
    <div class="dialog-buttons text-orphan">
        <button class="cancel">No</button>
        <button class="submit" style="display: block;">Yes</button>
    </div>
</div> 

我试过了

browser.find_element_by_class_name("submit").click()

但我得到以下错误:

引发exception_class(message,screen,stacktrace)selenium.common.exceptions.ElementClickInterceptedException:message:元素在点(788,636.5)处不可单击,因为另一个元素将其遮蔽

你能告诉我该如何进行吗?我正在使用firefox和python

共有1个答案

乐正玺
2023-03-14

根据您的问题和您分享的HTML,您需要引导WebDriverWait使所需元素可单击,您可以使用以下解决方案:

#to click on Yes button
WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.XPATH, "//div[@class='warning-content dialog-content text-orphan' and contains(.,'Security Mode is disabled')]//following::div[1]//button[@class='submit']"))).click()
# to click on No button
WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.XPATH, "//div[@class='warning-content dialog-content text-orphan' and contains(.,'Security Mode is disabled')]//following::div[1]//button[@class='cancel']"))).click()

注意:您必须添加以下导入:

from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.common.by import By
from selenium.webdriver.support import expected_conditions as EC
 类似资料:
  • 我想点击一个按钮,这个按钮要么还不能点击,要么上面有另一个元素。 但只要它是可点击的,我就想按它。我试过这个: 但它不起作用,因为我仍然得到错误

  • 问题内容: 我正在尝试使用基于selenium的Katalon Studio进行一些测试。在我的一项测试中,我必须在文本区域内编写。问题是我得到以下错误: 实际上,我的元素放置在其他可能隐藏它的diva里面,但是如何使click事件击中我的textarea? 问题答案: 可能是由于不同的因素造成的。您可以通过以下任一过程解决它们: 由于存在JavaScript或AJAX调用而无法单击元素 尝试使用

  • 问题内容: 我正在尝试使用基于selenium的Katalon Studio进行一些测试。在我的测试之一中,我必须在文本区域内编写。问题是我得到以下错误: 实际上,我的元素放置在其他可能隐藏它的diva里面,但是如何使click事件击中我的textarea? 问题答案: 可能是由不同因素引起的。你可以通过以下任一过程解决它们: 由于存在JavaScript或AJAX调用而无法单击元素 尝试使用 C

  • 我有一个web应用程序,我正试图为其编写selenium测试,但我遇到了Chrome驱动程序的问题。有一个向导类型的界面,用户可以使用它来填写表单。有一个按钮可以添加一个带有几个设置的行。我已经用黑色概述了这一点。蓝色矩形显示按钮的可点击区域。这个矩形的中间没有重叠其他任何东西。 问题是有一个巨大的div包含整个屏幕和Chrome说这个div将获得点击。那么,我该怎么绕过这件事呢?这似乎不是正确的

  • 脚本: 登录www.flipkart。com,并在成功登录后从“电子产品”中选择“三星”。现在,我需要滚动到页面底部,从左侧,我需要点击可用性来选择“排除股票期权”,但点击可用性,我会收到消息 失败:Test_Samsung org。openqa。硒。WebDriverException:元素在点(119,9)处不可单击。其他元素将收到点击: