ロボットフレームワークのテキストのロケータを取得する方法があるかどうかを知りたいですか?私はSelenium2LibraryでRobot Frameworkを使用しています。テキストでロケータを探す?
例:私のページにメッセージ「Hello」があり、新しいメッセージが表示されたときにその位置が変更され続けるとします。この「Hello」単語をクリックして完全なメッセージを表示します。どうやってやるの。助けてください。
ロボットフレームワークのテキストのロケータを取得する方法があるかどうかを知りたいですか?私はSelenium2LibraryでRobot Frameworkを使用しています。テキストでロケータを探す?
例:私のページにメッセージ「Hello」があり、新しいメッセージが表示されたときにその位置が変更され続けるとします。この「Hello」単語をクリックして完全なメッセージを表示します。どうやってやるの。助けてください。
私は、角度のあるウェブページで場所が大きく変わっているのを見たので、あなたが意味することを理解しています。 IDは、ページが読み込まれるたびに新たに生成され、要素をクリックした順序に応じて変更される可能性があります。悪いことに、domおよびxpathベースのロケータにも影響を与える可能性があります。あなたの質問への短い答えは、標準のSelenium、Selenium2、ExtendedSelenium2、または他の標準ライブラリには存在しません。
質問に対する媒体の回答は、現在最も高度なClick Element by Text
カスタムキーワードで解決されています。あなたの入力に基づいてxpathを生成し、余分なパラメータなしで簡単なテキスト検索で見つけられたら、それを実行します。それは時々見苦しく、引数の注入が必要になるかもしれませんが、一般的には非常にうまく動作し、xpathが遠隔で可能なときに使いやすいです。
Click Element by Text
# EXAMPLE USAGE
# Click Element by Text "text on the element" id="midlevellocationoftext" button
# NOTE: Does not account for extra spaces at the beginning or end, text must be exact
# NOTE: Allows for injections on purpose to allow user to be more exact with their location
[Arguments] ${text} ${location}=* ${elementtype}=*
Click Element xpath=//*[@${location}]//${elementtype}[text()=${text}]
長い答えは、私がより良いものに取り組んでいることです。これまでに私が知っていることがあります。これを行うための要素は空白の中に存在します。 JavaScriptでは、Webページを要素のリストに変換できます。これらの要素に.innerHTML
と呼んでテキストを取得できます。私は細かいことは考えていませんが、正直なところそれは可能だと思います。わかったら、コードレビューで他の人に見せてもらいます。
"Hello"にIDを追加しますか? – user3012759
この質問はあまりにも曖昧です。 「こんにちは」というラベルの付いたページを作る方法は数多くあり、そのラベルにアクセスするにはいくつかの方法があります。より具体的にする必要があります。あなたは勉強して、xpathまたはCSSのパスを使用しようとしましたか? –