1

watir を使用すると、特定のスクリプト タグの html を取得できます

scripts = @browser.scripts
index = scripts.find_index {|s| s.html.include? 'mytest.string'}
icode = scripts[index].html
etc.

私が探している文字列はユニークで、長い文字列の一部です。長い文字列が正しいことを確認する必要があります。現在、上記のようにしていますが、可能であればページオブジェクトの方法で行うことをお勧めします。コードの残りの部分では、page-object gem と ruby​​ を使用しています。可能であれば、このスクリプト タグで同じことをしたいと思います。そうでない場合は、wati の方法に固執します。

いつものように、あなたの助けに感謝します。

4

1 に答える 1

0

あなたのhtmlには次のようなものがあると思います:

<html>
  <body>
    <script>other random script</script>
    <script>some stuff mytest.string some other stuff</script>
    <script>another random script</script>
  </body>
</html>

page-object-gem でスクリプト要素を取得するには、汎用elementアクセサーを使用できます。次に、ページ オブジェクトを次のように定義できます。

class MyPage
  include PageObject

  element(:test_script, :script, :xpath => '//script[contains(text(), "mytest.string")]')
end

ここでは、:xpath ロケーターを使用して、テキストでスクリプトを見つけました。:xpath を使用することは通常推奨される選択ではありませんが、別の解決策を見つけることができませんでした。:text ロケータを使用することはできません。Watir は表示可能なテキストのみを返し、スクリプト要素には何も返さないためです。:xpath ロケーターを使用すると、その制約をバイパスできます。

このページを定義すると、スクリプト要素の html を次のように取得できます。

page = MyPage.new(browser)
page.test_script_element.html
#=> "<script>some stuff mytest.string some other stuff</script>"
于 2014-02-25T14:30:45.957 に答える