【问题标题】:Access html text through python selenium通过python selenium访问html文本
【发布时间】:2020-01-12 15:43:45
【问题描述】:

我正在尝试获取文本(由主题标签标记)。

<div class="XYZ">
        <h5>
    "
          #######Reports due by##############
    "
          <span class="hbl" data-hint="task due date">
            <i class="icon-boxy-sign"></i>
          </span>
        </h5>
        <script type="jsv#61^"></script><script type="jsv#123_"></script>
        <script type="jsv#60^"></script><script type="jsv#124_"></script>
      <script type="jsv#59^"></script><p>#################07/10/2020#######################</p><script type="jsv/125^"></script>
    <script type="jsv/52_"></script><script type="jsv/24^"></script>
        <script type="jsv/42_"></script><script type="jsv/23^"></script>
      </div>

获取主题标签内文本的 Python 行:

txt = dat =wait(driver, 10).until(EC.visibility_of_element_located((By.CSS_SELECTOR, 'div[class="XYZ"]'))).text

我希望该行打印:“报告截止日期”和“2020 年 7 月 10 日,我不断收到 timeoutException 和无法定位元素错误。

【问题讨论】:

  • 请提供 HTML 代码,至少一些。没有它我们无法帮助你。
  • 在你问之前几秒钟编辑了:)
  • 尝试使用div.XYZ 而不是div[class="XYZ"](参见class selector docs
  • div.XYZ 也不起作用。而且我不认为python语法!
  • 是框架内的元素吗?

标签: python selenium xpath css-selectors webdriverwait


【解决方案1】:

更改为。 CSS_SELECTOR 到 By.XPATH 并将定位器更新为 '//div[@class='XYZ']'。应该可以。

【讨论】:

  • 试过了:(By.XPATH, '//div[@class='XYZ'])。没有运气!
【解决方案2】:

看来你很接近了。要提取文本(由主题标签标记),您必须为 visibility_of_element_located() 诱导 WebDriverWait,您可以使用以下任一 Locator Strategies

  • 使用CSS_SELECTOR

    print(WebDriverWait(browser, 20).until(EC.visibility_of_element_located((By.CSS_SELECTOR, "div.XYZ"))).get_attribute("title"))
    
  • 使用XPATH

    print(WebDriverWait(browser, 20).until(EC.visibility_of_element_located((By.XPATH, "//div[@class='XYZ']"))).get_attribute("title"))
    
  • 注意:您必须添加以下导入:

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

在这里你可以找到selenium.common.exceptions.NoSuchElementException: Message: no such element: Unable to locate element while trying to click Next button with selenium的相关讨论

【讨论】:

  • 我有正确的导入。上面的表达式都不适用于这种特殊情况。 CSS_SELECTOR 返回 NONE 类型,并且 XPATH 超时!有没有办法通过标签访问字符串?

    。我认为这是唯一的希望。

  • 我也有正确的等待“从 selenium.webdriver.support.ui 导入 WebDriverWait 作为等待”谢谢
  • 标记此解决方案,因为它显示了良好的响应努力,并将帮助其他人。谢谢。
猜你喜欢
  • 2020-09-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-05-18
  • 2011-12-13
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多