【问题标题】:check if text contained in a font tag检查字体标签中是否包含文本
【发布时间】:2016-06-24 08:37:13
【问题描述】:

我在 python 中使用 selenium 来检查是否包含字体标签之间的文本,如果包含,则返回标签 tbody。

html代码:

<table width="100%" border="0" cellspacing="1" cellpadding="1" bgcolor="#000000" height="80">
    <tbody>
        <tr bgcolor="#666699">
            <td height="17" bgcolor="#CCCC99">
                <font size="2"><b><font face="Arial, Helvetica, sans-serif">PARTY 1</font></b></font>
            </td>
        </tr>
        <tr>
            some html code...
        </tr>
    </tbody>
</table>

如您所见,这是一个示例,如果其中有 PARTY 1,我需要检查 html 页面,如果有,则返回 tbody 元素。 我应该说没有办法使用 id 获取元素,因为还有其他表以相同的方式编写。 我已经尝试过使用 //font[contains(.,'PARTY 1')] 但它没有用

使用 selenium 并检查 PARTY 1 是否在并取回 tbody 元素的最佳方法是什么?

【问题讨论】:

  • //font[contains(.,'PARTY 1')] 至少应该正确定位font 元素。你有什么错误吗?

标签: python html selenium selenium-webdriver selenium-ide


【解决方案1】:

此 xpath 返回 TBODY 标记,其中包含带有“PARTY 1”文本的 FONT 标记:

//tbody[.//font[contains(.,'PARTY 1')]]

【讨论】:

  • 嘿,它不起作用字体标签开始和结束之间的文本不能识别为文本,所以它无法得到它......
  • 您可能必须将contains(.,'PARTY 1') 替换为contains(text(),'PARTY 1')。虽然我对此并不完全确定
  • 我知道这个文本是标签中的一个字符串,而不是一个文本,这就是为什么当我使用 text() 以任何方式检查标签是否包含字符串时我无法得到它?跨度>
  • 伙计,这是 html,这只是文本/字符串/字母/单词,无论你怎么称呼它,你都必须使用 text() 命令;)
  • 我知道,但是当我使用 text() 时它不起作用
【解决方案2】:

首先使用el = driver.find_element_by_xpath('insert xpath here')获取字体元素,然后使用el.text获取文本。你的代码应该是这样的:

el = driver.find_element_by_xpath('insert xpath of font tag here')

if el.text == 'PARTY 1':
    return driver.find_element_by_xpath('insert xpath of tbody here')

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-09-16
    • 1970-01-01
    • 2015-07-31
    • 2020-04-15
    • 2013-07-02
    • 2011-05-26
    相关资源
    最近更新 更多