首页 > 解决方案 > 如果 HTML 页面使用某些值存在,我如何从特定元素中提取文本

问题描述

<td class="error-snip-cell xdata-label-text">7 - Partner Specific</td>
<td class="error-id-cell xdata-label-text">0x39394C1</td>
<td class="error-snip-cell xdata-label-text">7 - Partner Specific</td>
<td class="error-id-cell xdata-label-text">0x39394C1</td>
<td class="error-snip-cell xdata-label-text">4 - Situational</td>
<td class="error-id-cell xdata-label-text">0x3938BF3</td>
<td colspan="2" class="error-message-cell xdata-value-text">Trace Number should not 
be used.</td>
<td class="error-snip-cell xdata-label-text">2 - H Syntax</td>
<td class="error-id-cell xdata-label-text">0x81004C</td>
<td colspan="2" class="error-message-cell xdata-value-text">A data loop with 'Must Use' status 
is missing.</td>

以上是我在 HTML 中的内容,还有更多类似上面的标签。我正在尝试查找 error-snip-cell xdata-label-text = 2 - H Syntax 和 4 - Situational。如果页面上存在这些,则获取 error-id-cell xdata-label-text 和 error-message-cell xdata-value-text 的值或文本。我在页面中查看的文本还有更多 HTML 标记。我如何获取所有文本或值,我正在寻找基于我正在使用 selenium python 寻找的特定事物?

标签: pythonselenium

解决方案


class您可以使用它构建 xpath 来查找元素text

#since I dont know under which the table appears have used "//..td". And if trying to find an element within in an element use a dot at the beginning.(".//td")
# for "error-snip-cell xdata-label-text = 2 - H Syntax"
//..td[contains(@class,'error-id-cell') and contains(text(),'Syntax')]
# can also be like
//..td[starts-with(@class,'error-id-cell') and ends-with(text(),'Syntax')]

# for "error-snip-cell xdata-label-text = 4 - Situational"
//..td[contains(@class,'error-id-cell') and contains(text(),'Situational')]
# can also be like
//..td[starts-with(@class,'error-id-cell') and ends-with(text(),'Situational')]

# for "text of error-id-cell xdata-label-text and error-message-cell xdata-value-text. "
//..td[contains(@class,'error-id-cell')]
//..td[contains(@class,'error-message-cell')]

推荐阅读