javascript - 如何使用selenium python点击链接

标签 javascript python selenium jsp beautifulsoup

我尝试使用 selenium 打开 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"]

最佳答案

您想要等待该元素。一种方法可能如下所示:

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()

关于javascript - 如何使用selenium python点击链接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59911492/

相关文章:

python - 在蓝图应用程序中访问 Flask 全局变量

python - 如何将 "bytes"对象转换为 pandas Dataframe,Python3.x 中的文字字符串?

java - Selenium Webdriver 中的 Junit 标记不起作用

java - WebElements 列表中的 Selenium Web Driver Stale Reference 异常

javascript - 如何更改内容 :url in jquery? 的 css 属性

javascript - React JS 图像 uploader |更改背景图片

javascript - 主干不渲染 $el 但可以直接引用元素

javascript - 无法通过 Chrome 扩展中的函数访问 DOM

python - 如何使用 px.bar() 在堆积条形图中显示百分比值?

java - @findby 的访问修饰符应该是私有(private)的还是公共(public)的?