簡體   English   中英

python / selenium / 元素不可點擊

[英]python / selenium / Element is not clickable

我剛剛開始學習python並嘗試制作一個與網站進行一些交互的小項目,但是我遇到了一個小問題,我無法自己解決。

我試圖在網站上找到一些東西。 因此,我輸入一些條件,然后按搜索按鈕。 如果我的搜索成功,網站上會出現新信息,我想點擊一個按鈕,執行一些其他操作並返回搜索端。 如果沒有結果,我會回到搜索站點。

該代碼在大多數情況下都可以正常工作,但有時我會收到錯誤消息並且我的代碼會中斷。

#click search button
css = 'button.btn-standard:nth-child(2)'
iElement = browser.find_element_by_css_selector(css)
iElement.click()

#wait some time
t = random.uniform(0.190, 0.25)
time.sleep(t)
        
css = 'body > main > section > section > div.ut-navigation-container-view--content > div > div > section.ut-navigation-container-view.ui-layout-right > div > div > div.DetailPanel > div.bidOptions > button.btn-standard.buyButton.currency-coins'
try:            
  #Check if search is successful
  iElements = browser.find_element_by_css_selector(css)

  #Buy now for n coins
  iElement = browser.find_element_by_css_selector(css)
  iElement.click() # <- here is were the error occurs

  .... some other code that works...          
except NoSuchElementException:
  a = 1

#Go back
css = '.ut-navigation-button-control'
iElement = browser.find_element_by_css_selector(css)
iElement.click()

錯誤:ElementClickInterceptedException:消息:元素在點 (972,569) 處不可點擊,因為另一個元素遮住了它

我已經嘗試過element_to_be_clickable但我無法處理它。

有人可以幫我解決我的問題嗎?

一個元素與您的元素重疊,請嘗試使用 this。

driver.execute_script("arguments[0].click();",  iElement)

等待並點擊它

iElement=WebDriverWait(driver, 10).until(EC.element_to_be_clickable((By.CSS_SELECTOR, css)))

進口

from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait 
from selenium.webdriver.support import expected_conditions as EC

因此,顧名思義,具有“ut-click-shield”類的元素會阻止單擊。 您可以嘗試一些事情:

a) 在實際單擊元素之前添加“等待元素可點擊”:

iElement = WebDriverWait(browser, 20).until(expected_conditions.element_to_be_clickable((By.CSS, "myElement"))).click()

b) 另一種選擇是使用Actions Chain

ActionChains(browser).move_to_element((By.CSS, "myElement")).click().perform()

c) 有關不同“元素不可點擊”原因的概述,請參閱此討論

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM