【问题标题】:Selenium Python check if div existSelenium Python 检查 div 是否存在
【发布时间】:2019-08-03 07:57:29
【问题描述】:

我正在抓取 Facebook 帖子,我正在使用

status = x.find_element_by_xpath(".//div[@class='_5pbx userContent _3576']/p[1]").text

用于获取状态帖子,以及 Facebook 帖子的 html 结构,如下所示

<div class="_5pbx userContent _3576" data-ft="{{"tn":"K"}}" id="js_33">
  <p>Bersama Ketua APTIKOM Yogyakarta, Bapak Dr. Agfianto Eko Putra, M.Si. @agfi68<br> Terima kasih banyak telah memesan buku Digital.Is. Me</p>
</div>

有时,p 标记在 div 内,但有时不在 div 内

如何创建 status = x.find_element_by_xpath(".//div[@class='_5pbx userContent _3576']/p[1]").text

支持是否在 div 内或不在 div 内

【问题讨论】:

  • 您的意思是,某些_5pbx userContent _3576 div 没有p?为什么不在div本身上使用.getAttribute("innerText"),如果p存在,它将给出内部文本,否则它将为空。

标签: python xpath selenium-chromedriver


【解决方案1】:

你可以做一个 x.find_elements_by_xpath 看看长度是否为零。

【讨论】:

    【解决方案2】:

    使用find_element_by_xpath(".//div[@class='_5pbx userContent _3576']") 查找&lt;div&gt; 元素。

    然后您可以检查该元素以查看它是否具有&lt;p&gt; 子元素。

    【讨论】:

      【解决方案3】:

      您想根据特定条件选择两个不同的元素。所以,你应该使用:

      .//div[@class='_5pbx userContent _3576'][not(p[1])]|.//div[@class='_5pbx userContent _3576']/p[1]
      

      一般来说,假设变量$XPathExpression1$XPathExpression2$Condition

      $XPathExpression1[$Condition]|$XPathExpression2[not($Condition)]
      

      【讨论】:

        猜你喜欢
        • 2018-01-23
        • 2021-05-17
        • 1970-01-01
        • 2012-03-22
        • 1970-01-01
        • 2016-08-05
        • 2022-12-16
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多