簡體   English   中英

Python Selenium WebDriver根本無法找到元素

[英]Python Selenium WebDriver unable to find element at all

Selenium webdriver 無法使用不同的方法在頁面上找到任何元素:class_name、id 和 xpath。

這是我的代碼:

from selenium import webdriver
##from selenium.webdriver.support.ui import Select
from selenium.webdriver.common.keys import Keys
import time
import random


chrome_options = webdriver.ChromeOptions()
chrome_options.add_argument("--headless")
chrome_options.add_argument("--disable-gpu")

driver = webdriver.Chrome(executable_path=r'C:\Users\acer\Downloads\chromedriver_win32\chromedriver.exe', chrome_options=chrome_options)
time.sleep(2)
driver.get('https://www.reddit.com/r/AskReddit/comments/fi04fh/what_are_some_spoilers_for_the_next_month_of_2020/')
time.sleep(2)
print(driver.title)
time.sleep(2)
element = driver.find_element_by_id("header")


print("done")

標題打印成功,但在driver.find_element_by_id("header")行上失敗。 事實上,我試圖找到類為“最重要”的元素(使用 find_by_class_name),但由於這不起作用,我使用相應的方法(“xpath”,“ id") 但對我沒有任何作用。

任何人都可以對這個問題提供一些見解嗎?

編輯:這是錯誤:

Traceback (most recent call last):
  File "C:/Python34/reddit_test.py", line 20, in <module>
    element = driver.find_element_by_id("header")
  File "C:\Python34\lib\site-packages\selenium\webdriver\remote\webdriver.py", line 269, in find_element_by_id
    return self.find_element(by=By.ID, value=id_)
  File "C:\Python34\lib\site-packages\selenium\webdriver\remote\webdriver.py", line 752, in find_element
    'value': value})['value']
  File "C:\Python34\lib\site-packages\selenium\webdriver\remote\webdriver.py", line 236, in execute
    self.error_handler.check_response(response)
  File "C:\Python34\lib\site-packages\selenium\webdriver\remote\errorhandler.py", line 192, in check_response
    raise exception_class(message, screen, stacktrace)
selenium.common.exceptions.NoSuchElementException: Message: no such element: Unable to locate element: {"method":"id","selector":"header"}
  (Session info: headless chrome=80.0.3987.132)
  (Driver info: chromedriver=2.41.578737 (49da6702b16031c40d63e5618de03a32ff6c197e),platform=Windows NT 6.1.7601 SP1 x86_64)

這是元素存在的證據...... 在此處輸入圖片說明

在您的網址中沒有標題 ID

忽略此異常

試試這個代碼:

from selenium import webdriver
##from selenium.webdriver.support.ui import Select
from selenium.webdriver.common.keys import Keys
import time
import random


chrome_options = webdriver.ChromeOptions()
chrome_options.add_argument("--headless")
chrome_options.add_argument("--disable-gpu")

driver = webdriver.Chrome(executable_path=r'C:\Users\acer\Downloads\chromedriver_win32\chromedriver.exe', chrome_options=chrome_options)
time.sleep(2)
driver.get('https://www.reddit.com/r/AskReddit/comments/fi04fh/what_are_some_spoilers_for_the_next_month_of_2020/')
time.sleep(2)
print(driver.title)
time.sleep(2)
try:
    element = driver.find_element_by_id("header")
except:
    print("The Header isd dose not exist!")
    exit()
print("done")

在您的網址中,標題不存在

你可以通過這張圖片看到!

在此處輸入圖片說明

問題是我使用的是舊版本的 reddit 而 Selenium 和 Hamza 打開的默認版本是新版本,它不包含我試圖找到的元素

暫無
暫無

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

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