【问题标题】:how to get text with Selenium in the python from <span class> if appears for few seconds?如果出现几秒钟,如何从 <span class> 在 python 中使用 Selenium 获取文本?
【发布时间】:2021-06-14 23:17:41
【问题描述】:

我有一个关于在 Python 脚本中使用 Selenium 从 span 类中获取文本的问题。 我已经检查了许多变体以获取文本,但仍然没有运气。 主要原因 - 提到的元素在页面上出现了几秒钟然后消失了,我需要从该元素中获取“最新”文本。

这是元素,它会出现几秒钟:

 </style><div class="PNs8Z result_1613936507015"><span class="genericPhrase" data-role="final_result">Latest</span></div></div></div></div>

我已经尝试了几种方法,我在 Selenium 文档和 Internet 中找到了这些方法:

wait.until(presence_of_element_located((By.CSS_SELECTOR, "span.final_result")))
WebDriverWait(driver, 30).until(EC.find_element_by_xpath("//span[contains(@class,'final_result')]"))
WebDriverWait(driver, 30).until(EC.visibility_of_element_located((By.CSS_SELECTOR, "div.final_result")))

但是,仍然没有运气。当元素永久在页面上并且不会消失时,我找到了解决方案,但这种方法对我来说还没有奏效。

也许有人已经遇到过这样的问题,并且对我的情况有现成的解决方案?

提前致谢。 伊霍尔

【问题讨论】:

  • 你找到答案了吗?

标签: python selenium xpath html-table webdriverwait


【解决方案1】:

也许您错误地识别了您的定位器。 试试

driver.find_element_by_css_selector(".genericPhrase").text

等待可见性使用:

from selenium.webdriver.support.wait import WebDriverWait

wait = WebDriverWait(driver, timeout=20)           
wait.until(EC.visibility_of_element_located((SelectBy.CSS_SELECTOR, ".genericPhrase")))

【讨论】:

    【解决方案2】:

    要获取 Latest 内部的值 span 标签,请使用以下 xpath

    试试.text

    print(WebDriverWait(driver, 10).until(EC.visibility_of_element_located((By.XPATH,"//span[@class='genericPhrase' and @data-role='final_result']"))).text)
    

    或者试试.get_attribute("textContent")

    print(WebDriverWait(driver, 10).until(EC.visibility_of_element_located((By.XPATH,"//span[@class='genericPhrase' and @data-role='final_result']"))).get_attribute("textContent"))
    
     
    

    【讨论】:

      【解决方案3】:

      要搜索此类动态元素的 xpath,请使用 DOM 断点:

      并在子树修改时选择中断。现在所有更改都会中断并暂停网页渲染

      点击 resume execution 或按 f8 直到你的 span 显示出来

      【讨论】:

        猜你喜欢
        • 2016-03-18
        • 1970-01-01
        • 2017-07-04
        • 2020-11-07
        • 2015-04-05
        • 2018-07-01
        • 2023-03-05
        • 2013-10-14
        • 1970-01-01
        相关资源
        最近更新 更多