Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/283.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python Selenium WebDriver根本找不到元素_Python_Selenium - Fatal编程技术网

Python Selenium WebDriver根本找不到元素

Python Selenium WebDriver根本找不到元素,python,selenium,Python,Selenium,SeleniumWebDriver无法使用不同的方法在页面上找到任何元素:class\u 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 = webdrive

SeleniumWebDriver无法使用不同的方法在页面上找到任何元素:class\u 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")
标题打印成功,但在
驱动程序的行中失败。通过\u id(“标题”)
查找\u元素。 事实上,我正在尝试查找其类为“top matter”(使用find_by_class_name)的元素,但由于这不起作用,我使用相应的方法(“xpath”、“id”)对其他元素(“header”)进行了测试,但没有任何效果

有人能提供一些关于这个问题的见解吗

编辑:以下是错误:

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)
回溯(最近一次呼叫最后一次):
文件“C:/Python34/reddit_test.py”,第20行,在
元素=驱动程序。按元素id(“标题”)查找元素
文件“C:\Python34\lib\site packages\selenium\webdriver\remote\webdriver.py”,第269行,按id查找元素
返回self.find_元素(by=by.ID,value=ID_u)
文件“C:\Python34\lib\site packages\selenium\webdriver\remote\webdriver.py”,第752行,位于find\u元素中
'value':value})['value']
文件“C:\Python34\lib\site packages\selenium\webdriver\remote\webdriver.py”,第236行,执行
self.error\u handler.check\u响应(响应)
文件“C:\Python34\lib\site packages\selenium\webdriver\remote\errorhandler.py”,第192行,在check\u响应中
引发异常类(消息、屏幕、堆栈跟踪)
selenium.common.exceptions.NoSuchElementException:消息:没有这样的元素:无法定位元素:{“方法”:“id”,“选择器”:“标头”}
(会话信息:无头镀铬=80.0.3987.132)
(驱动程序信息:chromedriver=2.41.578737(49da6702b16031c40d63e5618de03a32ff6c197e),平台=Windows NT 6.1.7601 SP1 x8664)
这是元素存在的证据。。。
您的url中没有标题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")
在您的Url中,标题不存在

你可以通过这张图片看到


问题是我使用的是旧版本的reddit,而Selenium和Hamza打开的默认版本是新版本,它不包含我试图查找的元素

能否请您发布一个错误,以便我们更好地理解您是否要查找标题标签?该页面上没有标题id!看看这个错误,它还说没有这样的元素。有div id=“header”你可以看到在这个元素上没有header idurl@Ayudh答案更新答:我现在看到问题了,问题是我使用的是旧版本的Reddit,而您的浏览器和selenium打开的是新版本的Reddit!