Python Selenium在网页上找不到任何元素

问题描述 投票:0回答:3

我想用硒自动化一个简单的任务。登录此网站:https://www.lernsax.de/。我正在尝试通过xpath定位元素,但是那根本不起作用,我得到了NoSuchElementException。我正在使用Chromedriver,并且尝试使用[>]之类的其他定位方法

find_element_by_id find_element_by_name find_element_by_xpath find_element_by_link_text find_element_by_partial_link_text find_element_by_tag_name find_element_by_class_name

但是我总是会收到此错误。我已经尝试过其他网站,并且可以在xpath下正常工作。

任何帮助都将有很多意义!

这是我的完整代码:

from selenium import webdriver
from selenium.webdriver.common.keys import Keys
import time
driver = webdriver.Chrome(executable_path="C:\chromedriver\chromedriver.exe")
driver.get("https://lernsax.de")
loginbtn = driver.find_element_by_xpath('//*[@id="skeleton_main"]/div[1]/div[2]/div/a')
loginbtn.click()
time.sleep(2)
driver.quit()

和完整的错误消息:

    Traceback (most recent call last):
  File "C:/Users/.../lernsax.py", line 6, in <module>
    loginbtn = driver.find_element_by_xpath('//*[@id="skeleton_main"]/div[1]/div[2]/div/a')
  File "C:\Users\...\PycharmProjects\LernsaxAutomation\venv\lib\site-packages\selenium\webdriver\remote\webdriver.py", line 394, in find_element_by_xpath
    return self.find_element(by=By.XPATH, value=xpath)
  File "C:\Users\...\PycharmProjects\LernsaxAutomation\venv\lib\site-packages\selenium\webdriver\remote\webdriver.py", line 976, in find_element
    return self.execute(Command.FIND_ELEMENT, {
  File "C:\Users\...\PycharmProjects\LernsaxAutomation\venv\lib\site-packages\selenium\webdriver\remote\webdriver.py", line 321, in execute
    self.error_handler.check_response(response)
  File "C:\Users\...\PycharmProjects\LernsaxAutomation\venv\lib\site-packages\selenium\webdriver\remote\errorhandler.py", line 242, in check_response
    raise exception_class(message, screen, stacktrace)
selenium.common.exceptions.NoSuchElementException: Message: no such element: Unable to locate element: {"method":"xpath","selector":"//*[@id="skeleton_main"]/div[1]/div[2]/div/a"}
  (Session info: chrome=80.0.3987.149)

我想用硒自动化一个简单的任务。登录此网站:https://www.lernsax.de/。我正在尝试通过xpath定位元素,但这根本不起作用,我得到了...

python selenium xpath css-selectors webdriverwait
3个回答
0
投票

页面上存在一个iframe,因此您需要先将驱动程序切换到iframe,然后对该元素进行操作。您可以像这样:


0
投票

好像登录表单包含在iframe中,您将需要切换到iframe并执行所需的操作。在单击登录按钮之前,在下面添加。


0
投票

由于所需元素在<iframe>内,因此必须在该元素上调用click()

© www.soinside.com 2019 - 2024. All rights reserved.