我正在尝试创建一个XPath,它允许我验证表中标签为“X”的行是否具有正确的下拉值。
标签的XPath是
//*[@id="mainContent"]/table/tbody/tr/td/center/table/tbody/tr/td/table/tbody/tr/td/table/tbody/tr[14]/td[1]/b
下拉列表的XPath是
//*[@id="mainContent"]/table/tbody/tr/td/center/table/tbody/tr/td/table/tbody/tr/td/table/tbody/tr[14]/td[2]/select
如何修改这些以便我只需要一个XPath?
答案 0 :(得分:1)
假设" X"标签是独一无二的:
//td[. = 'X']/following-sibling::td[1]/select
或者,您可以保留一些,
//*[@id="mainContent"]//td[. = 'X']/following-sibling::td[1]/select
或全部,
//*[@id="mainContent"]/table/tbody/tr/td/center/table/tbody/tr/td/table/tbody/tr/td/table/tbody/tr[14]/td[1]/following-sibling::td[1]/select
根据页面上的数据,必要时需要满足原始路径,以满足一般性/特异性。
答案 1 :(得分:1)
类似于kjhughes'回答,但我会用
//td[1][b = 'X']/../td[2]/select
[b = 'X']
更接近OP所要求的内容,因为td
除标签外可能还有其他内容(包括仅限空白的节点)。使用td[1]
/ td[2]
确保我们使用前两列,就像OP一样。