之前遇到一個狀況大概是這樣:
<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
全站熱搜
留言列表