之前遇到一個狀況大概是這樣:
<dl id="sample">
<dt>foo1</dt><dd>bar1</dd>
<dt>foo2</dt><dd>bar2</dd>
<dt>foo3</dt><dd>bar3</dd>
</dl>
我想要確認的是 foo1 後面跟的是 bar1 而不是 bar2 bar3 等等,偏偏 dt 和 dd 都沒有被加上 id 。由於卡關卡很久,先用 dd[1] 這種方式解決,但覺得應該有別的解法。
後來找到 preceding-sibling 和 following-sibling 兩組對應的 XPath Axes 可以用。
比方說我要驗證 bar1 的話,差不多是這樣:
| verifyText | //dl[@id='sample']/dd[preceding-sibling::dt[contains(.,'foo1')] ] | bar1 |
簡單來說就是告訴 Selenium IDE 我要找的是 dl#sample 底下的一個 dd ,這個 dd 的前面是一個 dt ,然後這個 dt 包含了 foo1 這串字。
如果我要驗證的是 foo2 的話,就舉一反三:
| verifyText | //dl[@id='sample']/dt[following-sibling::dt[contains(.,'bar2')] ] | foo2 |
突然覺得 [] 有點像是形容詞子句… a dd [which preceding sibling is a dt [which contains 'foo1'] ] 這樣。 XD
留言列表

💻️ 