无法从外部标签从硒元素中获取文本?

时间:2018-08-01 15:37:58

标签: python html selenium

我有以下内容

Option Explicit
Public Sub test()
    MsgBox GetPathItem("https://stackoverflow.com/questions/51632630/count-of-many-to-many-and-optimize-query", 2)
End Sub
Public Function GetPathItem(ByVal path As String, ByVal position As Long) As String
    path = Replace$(path, "//", "##")
    GetPathItem = Replace$(Split(path, "/")(position), "##", "//")
End Function

如何获取包含“ 521X 7SW”的文本?每次我在硒中尝试.text命令时,它只会返回“ Zone:”。如果我使用get_attibute(“ text”)命令,它将不会返回任何内容。

我已经使用此命令选择了元素

<td nowrap="nowrap" align="left" colspan="2">
<b>Zone: </b>
"521X 7SW&nbsp;&nbsp;&nbsp;"
</td>

文本不是不可见的。 Here's a picture的元素

2 个答案:

答案 0 :(得分:0)

那是一个文本节点,而不仅仅是文本。

您可以像这样注入Javascript:

text_node  = driver.find_element_by_xpath("//b[contains(text(),'Zone: ')]")

data = driver.execute_script("return arguments[0].nextSibling.textContent;", text_node)  
print(data)  

text_node 作为arguments[0]

传递到 JavaScript

答案 1 :(得分:0)

您要查找的文本与' b '标签无关,它是 td标签 driver.find_element_by_xpath("//td[@nowraap='nowrap']/text()"); 值。您应该找到td标签文本来获取“ 521X 7SW”值。

{{1}}

您可以优化td的xpath,因为我只在问题中使用仅显示HTML