2017-04-19 191 views
-2

我使用Robotframework來自動化測試,它使用Selenium2庫,並提供了擴展許多庫(Java,Python,AngularJS等)的機會。如何使用Robot Framework獲取網頁元素的所有xpath?

這是我的問題。

有沒有辦法讓一個頁面上顯示的符合特定條件的元素的所有xpath?

由於事先

+0

你的用例是什麼? – Rao

+0

我可以提出將你的問題改爲「是否有一種方法可以獲得頁面上顯示的所有html元素,匹配某個xpath?」。目前的措詞很不明確,這就是它被低估的原因。 – Todor

回答

1

我會回答問題的2種方式我的理解 - 至少一個應該在尋找;)

。假定的XPath是//div - 例如「所有div元素」

1)要計算匹配元素究竟有多少:

${count}= Get Matching Xpath Count //div # note there's no xpath= prefix 

正如在評論中指出的,Get Matching Xpath Count返回值是一個String類型的,所以如果你要使用它的一些數值的比較,你最好將它轉換成int:

${count}= Convert To Integer ${count} 

2)爲了讓每一個元素匹配的XPath,一個d做點什麼吧

${matched elements}= Get Webelements  xpath=//div 
:FOR ${element} IN @{matched elements} 
\ ${text}= Get Text ${element}  # will get the text of each matched node 
\ Log ${text} 
+0

Todor非常感謝您的幫助! 還有一件事,我現在得到所有的元素文本,我需要檢查每個文本是否存在於一個文件中,我認爲另一個FOR循環應該做到這一點,但它是如何完成的? 我必須檢查天氣中所有顯示在網頁上的文字是否存在於特定文件中。 現在我得到了文本,並且需要檢查它們是否存在於提供的文件中。 預先感謝 –

+0

將文件內容加載到字符串中;將所有html文本存儲在列表中。在列表中循環,運行'應該包含$ {file content} $ {list list member}'。 – Todor

+1

非常感謝,幫助! –