簡體   English   中英

Python Selenium _ 錯誤:selenium.common.exceptions.TimeoutException _ 與 WebDriverWait

[英]Python Selenium _ Error: selenium.common.exceptions.TimeoutException _ with WebDriverWait

我正在研究 Selenium 的工作原理。 有些元素已完全加載,但無法點擊。 這是案例的例子。 Selenium 需要一段時間才能完全加載。 但是按鈕仍然不可點擊。 我認為 Selenium 找不到該元素。 我該如何解決這個問題?

僅供參考,當我手動單擊按鈕時會加載一個彈出窗口。 非常感謝你的協助

url

https://cafe.naver.com/codeuniv

我的 python 代碼

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

driver = webdriver.Chrome()
driver.get("https://cafe.naver.com/codeuniv")
time.sleep(1)
WebDriverWait(driver, 10).until(EC.element_to_be_clickable((By.XPATH, '//*[@id="menuLink107"]'))).click()
time.sleep(1)
WebDriverWait(driver, 10).until(EC.element_to_be_clickable((By.XPATH, '//*[@id="upperArticleList"]/table/tbody/tr[1]/td[2]/div/table/tbody/tr/td/a'))).click()

按鈕

<a href="#" class="m-tcol-c" onclick="ui(event, 'ftKPZDy0W2UYCbEIxQ-50g',3,'코뮤','30026525','', 'false', 'true', 'codeuniv', 'false', '107'); return false;">코뮤</a>

錯誤

Traceback (most recent call last):
  File "C:\project\naver.py", line 12, in <module>
    WebDriverWait(driver, 10).until(EC.element_to_be_clickable((By.XPATH, '//*[@id="upperArticleList"]/table/tbody/tr[1]/td[2]/div/table/tbody/tr/td/a'))).click()
  File "C:\project\venv\lib\site-packages\selenium\webdriver\support\wait.py", line 89, in until
    raise TimeoutException(message, screen, stacktrace)
selenium.common.exceptions.TimeoutException: Message: 

您可以使用隱式等待來解決您的問題,或者嘗試使用 id id 或其他 xpath 或者嘗試查找 iframe

wait=WebDriverWait(driver,10)
driver.get("https://cafe.naver.com/codeuniv")
wait.until(EC.element_to_be_clickable((By.XPATH, '//*[@id="menuLink107"]'))).click()
wait.until(EC.frame_to_be_available_and_switch_to_it((By.ID,'cafe_main')))
wait.until(EC.element_to_be_clickable((By.XPATH, '//*[@id="upperArticleList"]/table/tbody/tr[1]/td[2]/div/table/tbody/tr/td/a'))).click()

您的元素在 iframe 中,請稍候並切換到它。

<iframe name="cafe_main" id="cafe_main" title="카페 메인" src="//cafe.naver.com/MyCafeIntro.nhn?clubid=30026525" width="860" height="100%" frameborder="0" scrolling="no" marginwidth="0" marginheight="0" allowtransparency="true" allowfullscreen="" style="height: 2140px;" cd_frame_id_="3e06a515dca2ac262583e8ce3ea0e356"></iframe>

進口:

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

暫無
暫無

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

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