2017-04-18 94 views
1

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

這是我的問題。

有沒有辦法讓所有文本顯示在頁面上?

我可以通過元素定位器獲取任何特定的文本,但是目前我需要編寫一個函數來獲取頁面上顯示的所有文本。

有沒有人知道一種方式?或者提示如何讓事情繼續下去?

+0

您可以獲取整個頁面的源代碼,然後使用該代碼:http://robotframework.org/Selenium2Library/Selenium2Library.html#Get%20Source –

+0

謝謝JanKovařík! 我想這會做的伎倆! –

+0

@JanKovařík 我通過以下來源: '$ {} SRC = Selenium2Library.Get來源 OperatingSystem.Create文件$ {} OUTPUT_DIR $ /source.html {SRC}' 現在想不出如何從源頭獲取文本。 有關於此的任何想法? 謝謝 –

回答

1

你可以做到這一點通過獲取<body>標籤的文本內容:

${text}= Get Text //body 
Log  ${text} # a very long string, with newlines as delimiters b/n the different tags 
${text as list}= Split To Lines ${text} 
Log  ${text as list} # a list, each member is the different tag's text 

另一個(非工作與SE)的方式來做到這一點是每一個元素去後,用定位器如//body//*,在其上生成網絡元素Get Webelements
但是,如果您在每個生成的webelement上調用Get Text,它將返回其文本以及所有子項的文本,從而複製數據。這可以在純xpath/xslt(text(),.normalize-space())中完成,但遺憾的是不通過webdriver/selenium(它總是期望節點作爲參數)。
答案的目的是去呈現2分鐘研究的結果:),並從網頁的每個元素上獲得任何可能已經用Get Text實現它的人的反饋。

相關問題