如何解决如何在Yahoo.finance中找到时间选择按钮?
我想在 Yahoo Stock History 页面中找到时间选择按钮:
元素的快照: ![在此处输入图片说明][2]
但是我用xpath写的python代码无法实现,代码如下:
WebDriverWait(browser,180).until(EC.presence_of_element_located((By.XPATH,'//svg[@class="Va(m)! Mstart(8px) Stk($linkColor) Fill($linkColor) dateRangeBtn:h_Fill($linkActiveColor)
button1 = browser.find_element(By.XPATH,'//svg[@class="Va(m)! Mstart(8px) Stk($linkColor) Fill($linkColor) dateRangeBtn:h_Fill($linkActiveColor) dateRangeBtn:h_Stk($linkActiveColor) W(8px) H(8px) Cur(p)"]')
但它会显示如下错误: enter image description here 要么 enter image description here 请给我一些帮助或建议。我不知道为什么找不到。
解决方法
该元素是动态元素。因此,要单击元素,您需要为 element_to_be_clickable()
引入 WebDriverWait,您可以使用以下任一 Locator Strategies:
-
使用
CSS_SELECTOR
:driver.get("https://finance.yahoo.com/quote/AAPL/history?p=AAPL") WebDriverWait(driver,20).until(EC.element_to_be_clickable((By.CSS_SELECTOR,"section[data-test=qsp-historical] div[data-test=dropdown] > div > span"))).click()
-
使用
XPATH
:driver.get("https://finance.yahoo.com/quote/AAPL/history?p=AAPL") WebDriverWait(driver,20).until(EC.element_to_be_clickable((By.XPATH,"//section[@data-test='qsp-historical']//div[@data-test='dropdown']/div/span"))).click()
-
注意:您必须添加以下导入:
from selenium.webdriver.support.ui import WebDriverWait from selenium.webdriver.common.by import By from selenium.webdriver.support import expected_conditions as EC
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。