2017-04-18 12 views
1

私はRobotframeworkを使ってテストを自動化しています。これはSelenium2ライブラリを使用し、多くのライブラリ(Java、Python、AngularJSなど)を拡張する機会を与えます。Robot Frameworkを使用してWebページに表示されるすべてのテキストを取得する方法は?

ここに私の質問です。

ページに表示されるすべてのテキストを取得する方法はありますか?

要素ロケータで特定のテキストを取得できますが、現在はページに表示されているすべてのテキストを取得する関数を作成する必要があります。

誰も方法を知っていますか?または、物事をどうやって進めるかのヒント?

あなたが <body>タグのテキストコンテンツ取得することによってそれを行うことができます
+0

ページ全体のソースコードを取得し、それを使って作業することができます。http://robotframework.org/Selenium2Library/Selenium2Library.html#Get%20Source –

+0

ありがとうございましたJanKovařík! 私はそれがトリックを行うだろうと思う! '$ {SRC} = Selenium2Library.Getソース OperatingSystem.Createファイルは、$ {} OUTPUT_DIR /source.html $ {SRC}' が今どのように理解することはできません: –

+0

はJanKovařík @私は次のことで、ソースを得ましたソースからテキストを取得します。 それについてのアイデアは? ありがとう –

答えて

1

${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のウェブ要素を生成します。
しかし、生成された各Web要素でGet Textを呼び出すと、そのテキストとそのすべての子要素のテキストが返され、データが複製されます。これは純粋なxpath/xslt(text().normalize-space())で実行できますが、残念ながらwebdriver/seleniumでは実行できません(常に引数としてノードが必要です)。
答えからのde-tourの目的は、2分の研究の結果を提示することでした:)そして実際にそれを達成したかもしれない人からのフィードバックをページの各要素にGet Textで得ることでした。

関連する問題