python - 我正在尝试使用 Selenium 和 Python 在 Tradingview 中自动打开图表
问题描述
from selenium import webdriver
import time
DRIVER = 'chromedriver'
driver = webdriver.Chrome(DRIVER)
driver.get("https://www.tradingview.com/#signin")
driver.find_element_by_name("username").send_keys("Username")
driver.find_element_by_name("password").send_keys("Password")
driver.find_element_by_xpath("//button[@type='submit']").click()
driver.maximize_window()
driver.find_element_by_link_text('Chart').click()
driver.find_element_by_class_name('input-3lfOzLDc').send_keys('SBIN')
time.sleep(20)
driver.quit()
这里一切正常,但是当我尝试找到需要更改的元素时(发送 SBIN 的元素,我收到此错误
Traceback (most recent call last):
File "tview.py", line 11, in <module>
driver.find_element_by_xpath("//input[@class='input-3lfOzLDc']").send_keys('SBIN')
File "/usr/local/lib/python3.7/site-packages/selenium/webdriver/remote/webdriver.py", line 394, in find_element_by_xpath
return self.find_element(by=By.XPATH, value=xpath)
File "/usr/local/lib/python3.7/site-packages/selenium/webdriver/remote/webdriver.py", line 978, in find_element
'value': value})['value']
File "/usr/local/lib/python3.7/site-packages/selenium/webdriver/remote/webdriver.py", line 321, in execute
self.error_handler.check_response(response)
File "/usr/local/lib/python3.7/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":"//input[@class='input-3lfOzLDc']"}
有人可以帮忙吗
解决方案
再等一会儿就可以了。我也导入了密钥,因为您必须清除该文本框
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
import time
DRIVER = 'chromedriver'
driver = webdriver.Chrome(DRIVER)
driver.get("https://www.tradingview.com/#signin")
driver.find_element_by_name("username").send_keys("sibyl666")
driver.find_element_by_name("password").send_keys("417305628m")
driver.find_element_by_xpath("//button[@type='submit']").click()
driver.maximize_window()
driver.find_element_by_link_text('Chart').click()
time.sleep(5)
driver.find_element_by_class_name('input-3lfOzLDc').send_keys(Keys.CONTROL + "a")
driver.find_element_by_class_name('input-3lfOzLDc').send_keys(Keys.DELETE);
driver.find_element_by_class_name('input-3lfOzLDc').send_keys('SBIN')
time.sleep(20)
driver.quit()
推荐阅读
- r - 定义四分位数及其名称
- kubernetes - storageClass kubernetes.io/no-provisioner 是否适用于多节点集群?
- vba - Excel VBA 向 SumIf 添加新行
- jakarta-ee - 消息驱动的 bean 没有收到任何消息
- postgresql - 如何使用 Hibernate Envers 查询图表数据
- prestashop - 如何在 prestashop 中使用模板视图?
- python - Python 3:使用 Rscript 从子进程捕获矩阵返回
- stack - Stack of Plates:破解编码面试
- asp.net - Dynamic Search Using Entity Framework
- typescript - 是否可以在编译时添加类型信息?