gpt4 book ai didi

python-3.x - 如何使用 selenium webdriver 单击此按钮?

转载 作者:行者123 更新时间:2023-12-03 15:57:05 24 4
gpt4 key购买 nike

我正在尝试从纳斯达克抓取数据表:https://www.nasdaq.com/symbol/msft/interactive-chart?timeframe=5d

我所做的是使用 python 和 selenium webdriver 单击表格按钮(在图表顶部,带有一个小表格 Logo )然后抓取。

submit = wait.until(EC.element_to_be_clickable((By.CSS_SELECTOR, '#dataTableBtn')))
submit.click()

但它不起作用。

按钮 html 在这里:

<div id="dataTableBtn" class="btn hideSmallIR stx-collapsible" onclick="dataTableLoader()"><span>Data Table</span></div>

EC 和 By

from selenium.webdriver.common.by import By
from selenium.webdriver.support import expected_conditions as EC

最佳答案

图表 和相关元素位于 <iframe> 中所以你必须:

  • 诱导 WebDriverWait 所需的框架可用并切换到它
  • 诱导 WebDriverWait 使所需的元素可点击
  • 您可以使用以下任一项 Locator Strategies :

    • 使用 CSS_SELECTOR :

      driver.get("https://www.nasdaq.com/symbol/msft/interactive-chart?timeframe=5d")
      WebDriverWait(driver, 10).until(EC.frame_to_be_available_and_switch_to_it((By.CSS_SELECTOR,"iframe[src*='edgar-chartiq']")))
      WebDriverWait(driver, 10).until(EC.element_to_be_clickable((By.CSS_SELECTOR, "div.hideSmallIR#dataTableBtn>span"))).click()
    • 使用 XPATH :

      driver.get("https://www.nasdaq.com/symbol/msft/interactive-chart?timeframe=5d")
      WebDriverWait(driver, 10).until(EC.frame_to_be_available_and_switch_to_it((By.XPATH,"//iframe[contains(@src, 'edgar-chartiq')]")))
      WebDriverWait(driver, 10).until(EC.element_to_be_clickable((By.XPATH, "//div[@class='btn hideSmallIR stx-collapsible' and @id='dataTableBtn']/span[text()='Data Table']"))).click()
    • 注意:您必须添加以下导入:

      from selenium.webdriver.support.ui import WebDriverWait
      from selenium.webdriver.common.by import By
      from selenium.webdriver.support import expected_conditions as EC
  • 浏览器快照:

nasdaq_datatable

Here you can find a relevant discussion on Ways to deal with #document under iframe

关于python-3.x - 如何使用 selenium webdriver 单击此按钮?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57390014/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com