如何在Python中使用Selenium从类中提取文本时忽略子类?

时间:2013-08-07 07:22:45

标签: python python-2.7 selenium selenium-webdriver selenium-rc

我正在尝试使用Python中的Selenium从html页面上的类中提取文本。在这样做时,我的代码也从其子类中提取文本。

以下是我正在使用的代码:

monthlyprice = browser.find_element_by_class_name('tila-container').text

HTML代码段:

<div class="tila-container tila-term header7a">
+ $8
<sup class="super-decimal-price">25</sup>
x 24/mo. If you cancel wireless service, remaining balance on phone becomes due. 0% APR O.A.C for well-qualified buyers. Qual’g service req’d.
</div>

以上粘贴的HTML代码是引起问题的代码,我想提取 tila-container 类下提到的文本值 + $ 8 ,但我的代码是给出的我在其子类超小数价格下出现的文字,我也不希望这个子课程从“x 24 / mo”开始后提到的文字。

民众帮助我解决这个问题。

1 个答案:

答案 0 :(得分:1)

这很难。就webdriver而言,子<span>之前和之后的文本同样有效地成为文本内容的一部分;并且它没有方法只返回文本内容的一些部分。

我要尝试的是:

  1. 使用方法获取div的完整内部html。
  2. 使用字符串操作将其分为三个部分;在<span>之前,<span>本身以及<span>
  3. 之后

    第一部分相当简单;有关如何获取单个元素的html源代码,请参阅Get HTML Source of WebElement in Selenium WebDriver using Python

    第二部分也不太难;使用python的字符串函数应该很容易。但是,如果内部文本的格式更加可变(即每次不仅仅是文本跨度文本),它将变得复杂。

    祝你好运!