我有以下 html:
<html>
<body>
<table>
<tr>
<tr>
<tr>
<tr>
<tr>
<td>Color Digest </td>
<td>AgArAQICGQMVBBwTIRQHIwg0GUMURAZTBWQJcwV0AoEDAQ </td>
</tr>
<tr>
<td>Color Digest </td>
<td>2,43,2,25,21,28,0,0,0,0,0,0,0,0,0,0,0,0,0,0,33,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,25,0,0,0,0,0,0,0,0,0,0,0,0,0,0,20,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,9,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, </td>
</tr>
</table>
</body>
</html>
和以下xpath:
tr[td='Color Digest']/td
我得到零結果。有人可以解釋為什么嗎?

uj5u.com熱心網友回復:
在xPath運算式中,我們也可以使用屬性名稱和標簽名稱(當它有文本時)。這里<tr>和<td>都是標簽名稱。有效的xPath表達是這樣的,
//tagname[@attributeName='value']
和
//tagname[@tagname='text']
里面td有那么你需要寫些只有文本可xPath像
//td[text()='Color Digest ']
或者
//tr[td='Color Digest ']
如果您需要使用特定元素,請使用如下所示的匹配編號,
(//td[text()='Color Digest '])[1]
或者
(//tr[td='Color Digest '])[1]
為什么它顯示0了您的匹配項xPath?
你沒有給空間以結束Digest。
你的:
//tr[td='Color Digest']/td
更正一:
//tr[td='Color Digest ']/td
uj5u.com熱心網友回復:
您的 XPath 存在一些問題
tr[td='Color Digest']/td
^ 1
^ 2
^ 3
XPath 應該以
/(子項)或//(子項)開頭。子級基本上意味著向下一級,而后代意味著向下一級或更多級。tr應該//tr在這種情況下,因為沒有根 TR。td當它看起來像是您打算使用的時候,您已經使用過.或者text()表示元素中文本的兩種變體。.表示壓縮所有后代節點text()的包含文本,表示僅包含當前節點的文本。無論是
text()或.將在這種情況下作業,但我一般會用text()只是為了安全起見。[td='Color Digest']應該[text()='Color Digest']如果您查看您提供的 HTML,第一個 TD 中的文本實際上在末尾包含一個空格,例如“顏色摘要”與“顏色摘要”。除非您使用像
contains().[td='Color Digest']應該[text()='Color Digest ']對于最后一個,我不確定您實際上在尋找什么,
/td.對于包含“Color Digest”文本的 TD,它沒有子元素。如果您的意思是兄弟 TD,那將需要
/following-sibling./td應該是/following-sibling::td[1]。
把這一切放在一起,
//tr[text()='Color Digest ']/following-sibling::td[1]
它將回傳以下元素
<td>AgArAQICGQMVBBwTIRQHIwg0GUMURAZTBWQJcwV0AoEDAQ </td>
<td>2,43,2,25,21,28,0,0,0,0,0,0,0,0,0,0,0,0,0,0,...</td>
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/370771.html
下一篇:AttributeError:move_to需要使用Selenium和Python呼叫move_to_element(by_locator)時出現WebElement錯誤
