2

一部のサンプル テスト/仕様を Watir から Selenium に変換する作業が少し進んでいます。ここでの最後の質問と提案された回答の後、Selenium 1 の代わりに WebDriver で Selenium 2.0 を使い始めました。

問題の例は、テーブル内のすべてのリンクを配列に集めることを扱っています - その部分は完了です。ただし、リンクが配列に入ると、それらと対話できる唯一の意味のある方法は .text のように見えます。@driver.navigate.to Array[1] を使用すると、ブラウザーで URL 形式エラーが発生し、link.href または .src は有効なオプションではありません。

Watir の実装は、これらのリンク (ユーザーが CMS を介して追加したページ) を収集し、それらを配列に格納してから、各ページを 1 つずつ訪問し、リード フォームを送信しました。Selenium を使用して、リード フォーム送信間のすべてのリンクを含む「ホーム」ページに再度アクセスすることで、これを機能させることができると思いますが、キャッシュされているかどうかにかかわらず、何百もの余分なページが読み込まれる可能性があります。

ここまでのコード: ' @countries = Array.new

@browser.navigate.to "http://www.testingdomain{$env}.com/global"  
@browser.find_elements(:xpath, "//table[@class='global-list']//a").each do |link|      
  @countries << [link.text, link.href]  ## The original WATIR line that needs an update
end #links  

@countries.uniq! #DEBUG for false CMS content'

selenium-webdriver のドキュメントで見つけた最も近い項目は (string).attribute メソッドでしたが、繰り返しますが、どの属性が不明です

4

2 に答える 2

2

属性メソッドで使用する形式がよくわかりませんでしたが、いくつかの実験の後、このステップを通過することができました。

@countries = Array.new

@browser.navigate.to "http://www.testingdomain{$env}.com/global"

@browser.find_elements(:xpath, "//table[@class='global-list']//a").each do |link|
text = link.attribute("text")
href = link.attribute("href")
@countries << [text, href]
end #links
`@countries.uniq! #DEBUG for false CMS content

于 2010-11-09T19:32:59.213 に答える
0

質問に対する答えを自分で見つけたようです。

実際、 element.attribute を使用すると、タグが持つ可能性のある HTML 属性をすべて取得できます。このように、要素の URL をプルしたかったのでelement.attribute('href')、要素の href="" 属性を返していました。クラス、ID、スタイルなど、他の属性についても同じことができます。

于 2013-04-14T04:15:46.130 に答える