【问题标题】:Trouble interacting with particular elements, selenium python与特定元素交互时遇到问题,硒 python
【发布时间】:2021-08-10 01:21:43
【问题描述】:

我正在开发一个从雅虎财经导出投资基金历史数据的程序。我对硒(python)非常陌生,并且遇到了一些我找不到提取方法的元素的问题。我已经研究过使用 xpath 以及 id、name 和 class 来获取元素,但仍在苦苦挣扎。

我有代码可以让我访问我需要的网页,但是一旦我需要开始点击按钮,我就会遇到需要与之交互的所有剩余元素的障碍。请查看我附加的源代码,以及我显示的片段,我试图按顺序抓取哪些元素。

关于我的源代码的注意事项:我相信有一种比使用 time.sleep() 函数更有效的方法来计时查找元素,但我不熟悉如何实现它.在您的解决方案中,我很高兴看到改进了我的代码或与我目前所拥有的代码一致的代码。

我的代码应该将您导航到我正在使用的网址。非常感谢所有帮助,谢谢!

from selenium import webdriver
from selenium.webdriver.common.keys import Keys
import time

ticker = "FXAIX"

# Declare browser variables
path = "C:\Program Files (x86)\chromedriver.exe"
driver = webdriver.Chrome(path)

# Open Chrome and go to YF
driver.get('https://finance.yahoo.com')
search = driver.find_element_by_id("yfin-usr-qry")
search.send_keys(ticker)
search.send_keys(Keys.RETURN)

time.sleep(10)

#Click Historical Data
history = driver.find_element_by_link_text("Historical Data")
history.click()

time.sleep(10)

#Click the Time Period


#Click Max


#Click Apply


#Click Download

剪报:https://i.stack.imgur.com/OSJud.png https://i.stack.imgur.com/zZ4bx.png

【问题讨论】:

    标签: python selenium class xpath


    【解决方案1】:

    看看这是否有效。您必须在每次点击页面后添加等待时间才能加载页面并且元素可见和可点击

    ticker = "FXAIX"
    
    #Click on Historic Data link text
    driver.find_element_by_xpath("//li[@data-test='HISTORICAL_DATA']/a/span").click()
    
    #Click on dateRange
    driver.find_element_by_xpath("//span[text()='Time Period']//following::div[contains(@class,'dateRangeBtn')]").click()
    
    #Click on MAX
    driver.find_element_by_xpath("//button[@data-value='MAX']").click()
    
    #Click on Apply
    driver.find_element_by_xpath("//button/span[text()='Apply']").click()
    
    #Click on Download
    driver.find_element_by_xpath("//a[contains(@href,'"+ticker+"') and @download='"+ticker+".csv']").click()
    

    【讨论】:

    • 我添加了等待命令,并且完美执行。非常感谢您提供此解决方案!
    • 太棒了 :) 请接受或投票给答案。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-08-06
    • 1970-01-01
    相关资源
    最近更新 更多