【问题标题】:Python Selenium WebDriver problem to parse tradingview.comPython Selenium WebDriver问题解析tradingview.com
【发布时间】:2021-07-08 11:02:03
【问题描述】:

我目前正在使用 Selenium WebDriver 来解析 https://www.tradingview.com/screener/ 站点。

我想找到过滤器按钮并单击它。 该元素的来源:

<div class="tv-screener-toolbar__button tv-screener-toolbar__button--options tv-screener-toolbar__button--filters apply-common-tooltip common-tooltip-fixed" data-name="screener-filter" data-role="button">
    Filters
</div>

问题是:我找不到这个元素。

driver.get(' https://www.tradingview.com/screener/')
wait.until(EC.element_to_be_clickable((By.XPATH, "//div[text()='Filters'"))).click()
#or
driver.find_element_by_xpath("//div[@name='screener-filter']"). click()

错误“消息:没有这样的元素:无法找到元素{"method":"xpath","selector":"//div[@name='screener-filter']"}” 发生。

同样的问题适用于任何元素。看起来 Selenium 在此页面上找不到元素。 你能推荐我如何解决它吗?谢谢。

【问题讨论】:

  • 问题在这里//div[@name='screener-filter'],不是名称属性,而是data-name。可能下面的答案应该解决查询

标签: python-3.x selenium parsing selenium-webdriver click


【解决方案1】:

您的第一个定位器缺少],而第二个命令缺少显式等待并且那里的属性名称错误。 name 而不是 data-name
所以你可以尝试使用

wait.until(EC.element_to_be_clickable((By.XPATH, "//div[text()='Filters']"))).click()
#or
wait.until(EC.element_to_be_clickable((By.XPATH, "//div[@data-name='screener-filter']"))).click()

【讨论】:

    猜你喜欢
    • 2015-07-07
    • 1970-01-01
    • 2022-01-24
    • 2019-11-15
    • 2021-04-14
    • 2021-04-11
    • 2017-04-24
    • 2013-08-30
    • 2019-04-27
    相关资源
    最近更新 更多