Selenium和Python中的ElementClickInterceptedException解决方案



我要在一个网站上按下一个自动按钮,但与此同时,一种名为campaigns(kampanyalar(的东西正在阻止它。我该如何解决这个问题?我希望其他元素不要获得点击属性

错误:

ElementClickInterceptedException: element click intercepted: Element <div class="styled__CampaignCardDescriptionTitle-sc-1n4y3hk-2 hulWUi" color="">...</div> is not clickable at point (531, 35). Other element would receive the click: <a class="styled__HeaderMenuItem-sc-126ws66-35 gEoUee" href="/kampanyalar" id="DPE_TR_HOME_BUTTON_HEADERITEM0">...</a>

ElementClickInterceptedException表示您想要交互的元素在Selenium视图端口中不可用。

三件事:

1.全屏启动浏览器:

driver.maximize_window()

2.使用execute_script:滚动到该元素

driver.execute_script("arguments[0].scrollIntoView();", driver.find_element_by_css_selector(.your_css_selector))

3.操作链的使用:

ActionChains(driver).move_to_element(driver.find_element_by_id('some id where you want to go')).perform()

您需要的进口

from selenium.webdriver.common.action_chains import ActionChains

ElementClickInterceptedException可能由多种原因引起
最强大的功能是用JavaScript点击它,而不是用Web驱动程序点击。如下所示:

element = driver.find_element_by_xpath("xpath")
driver.execute_script("arguments[0].click();", element)

然而,最好看看是什么导致了这种异常
如果元素在可见屏幕之外,或者某个页脚元素与之重叠,最好将该元素滚动到视图中:

from selenium.webdriver.common.action_chains import ActionChains
element = driver.find_element_by_xpath("xpath")
driver.execute_script("arguments[0].scrollIntoView();", element)

在其他情况下,这将发生,因为您试图在页面仍在加载元素时单击该元素,以便在该元素上当前找到其他元素。在这种情况下,最好简单地等待,直到这个元素变得可点击。像这样:

from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.common.by import By
from selenium.webdriver.support import expected_conditions as EC
WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.XPATH, "xpath"))).click()

因此,最好根据您在那里面临的具体情况使用更多类似用户的操作,并且只有在没有使用JavaScript的替代方案的情况下才能单击

相关内容

  • 没有找到相关文章

最新更新