我尝试使用硒在 jsp 网页中打开html链接,但返回错误“无法定位元素”。请先帮助我解决问题。
HTML:
<a href="#" class="dashboard-stat dashboard-stat-v2 blue" id="bookedOrders">
</a>
Python代码:
_user = browser.find_element_by_name('username')
_user.send_keys(user_name)
_pass = browser.find_element_by_name('password')
_pass.send_keys(password)
submit = browser.find_element_by_id('submit-form')
submit.click()
order = browser.find_element_by_id('bookedOrders')
order.click()
错误:
Traceback (most recent call last):
File "main.py", line 23, in <module>
order = browser.find_element_by_id('bookedOrders')
File "C:\Users\dARK_soul\AppData\Local\Programs\Python\Python37-32\lib\site-pa
ckages\selenium\webdriver\remote\webdriver.py", line 360, in find_element_by_id
return self.find_element(by=By.ID, value=id_)
File "C:\Users\dARK_soul\AppData\Local\Programs\Python\Python37-32\lib\site-pa
ckages\selenium\webdriver\remote\webdriver.py", line 978, in find_element
'value': value})['value']
File "C:\Users\dARK_soul\AppData\Local\Programs\Python\Python37-32\lib\site-pa
ckages\selenium\webdriver\remote\webdriver.py", line 321, in execute
self.error_handler.check_response(response)
File "C:\Users\dARK_soul\AppData\Local\Programs\Python\Python37-32\lib\site-pa
ckages\selenium\webdriver\remote\errorhandler.py", line 242, in check_response
raise exception_class(message, screen, stacktrace)
selenium.common.exceptions.NoSuchElementException: Message: Unable to locate ele
ment: [id="bookedOrders"]
答案 0 :(得分:1)
您要等待该元素。一种方法如下所示:
from selenium.webdriver.common.by import By
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.support.ui import WebDriverWait
_user = browser.find_element_by_name('username')
_user.send_keys(user_name)
_pass = browser.find_element_by_name('password')
_pass.send_keys(password)
submit = browser.find_element_by_id('submit-form')
submit.click()
order = WebDriverWait(driver, 10).until(
EC.element_to_be_clickable((By.ID, "bookedOrders")))
order.click()
#order = browser.find_element_by_id('bookedOrders')
#order.click()