元素不可点击,因为另一个元素在 python 中遮挡了它
Element not clickable since another element obscures it in python
我正在尝试自动执行接入点 Web 配置。在此期间,我得到一个弹出窗口(有点像 "Yes" 和 "No" 的叠加层),我想点击它
我试图点击的叠加层的 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 to 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()
但我收到以下错误:
raise exception_class(message, screen, stacktrace)
selenium.common.exceptions.ElementClickInterceptedException: Message:
Element is not
clickable at point (788,636.5) because another element
obscures it
你能告诉我应该如何进行吗?
我正在使用 Firefox 和 python
您可以用动作替换点击事件class
使用操作 Class :
from selenium.webdriver.common.action_chains import ActionChains
actions = ActionChains(driver)
actions.move_to_element("Your Web Element").click().perform()
根据您的问题和您分享的 HTML,您需要为所需的 要点击的元素,你可以使用以下解决方案:
#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
我正在尝试自动执行接入点 Web 配置。在此期间,我得到一个弹出窗口(有点像 "Yes" 和 "No" 的叠加层),我想点击它
我试图点击的叠加层的 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 to 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()
但我收到以下错误:
raise exception_class(message, screen, stacktrace) selenium.common.exceptions.ElementClickInterceptedException: Message: Element is not clickable at point (788,636.5) because another element obscures it
你能告诉我应该如何进行吗? 我正在使用 Firefox 和 python
您可以用动作替换点击事件class
使用操作 Class :
from selenium.webdriver.common.action_chains import ActionChains
actions = ActionChains(driver)
actions.move_to_element("Your Web Element").click().perform()
根据您的问题和您分享的 HTML,您需要为所需的 要点击的元素,你可以使用以下解决方案:
#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