我想用硒自动化一个简单的任务。登录此网站: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定位元素,但这根本不起作用,我得到了...
页面上存在一个iframe,因此您需要先将驱动程序切换到iframe,然后对该元素进行操作。您可以像这样:
好像登录表单包含在iframe中,您将需要切换到iframe并执行所需的操作。在单击登录按钮之前,在下面添加。
由于所需元素在<iframe>
内,因此必须在该元素上调用click()
: