3

Google Chrome を使用して、iPhone 用の JavaScript で開発されたモバイル アプリのテストを自動化しようとしています。これは Webkit ベースであるため、コンテンツをレンダリングできるのは Safari と Google Chrome のみであるため、watir-webdriver を使用する以外に選択肢はありません。

Google Chrome で自動化するソリューションを見つけるために多くの調査を行ってきましたが、Watir-WebDriver を使用するのが最も近い方法です。

次のコードがあります。

require "rubygems"
require "watir-webdriver"
browser = Watir::Browser.new(:chrome)

website = "http://xxx.yyy.zzz"
browser.goto(website)
browser.link(:xpath,"/html/body/div/ul/li/a").click   #step1
browser.link(:xpath,"/html/body/div/div[2]/div/ul/li//*[@id=btn_WEBURL]").click     #step2

#step1 が実行されるとすぐに、コンテンツが新しいブラウザー ウィンドウで開かれ、次のようになります。

C:/Program Files/Ruby187/lib/ruby/gems/1.8/gems/watir-webdriver-0.2.2/lib/watir-
webdriver/elements/element.rb:241:in `assert_exists': unable to locate element,
using {:xpath=>"/html/body/div/div[2]/div/ul/li//*[@id=btn_WEBURL]", :tag_name=>
"a"} (Watir::Exception::UnknownObjectException)
        from C:/Program Files/Ruby187/lib/ruby/gems/1.8/gems/watir-webdriver-0.2
.2/lib/watir-webdriver/elements/element.rb:69:in `click'
        from ft.rb:13

watir-webdriver を使用して、Chrome でリンクをクリックするたびに新しいウィンドウを開かないようにする方法はありますか。または私の問題に対する他の解決策。

ありがとう

4

1 に答える 1

1

別のウィンドウを見つけて使用できます。

browser.window(:title => "your popup window").use do  
  browser.button(:id => "close").click
end

他の例を参照してください: https://github.com/jarib/watirspec/blob/watir2/window_switching_spec.rb

于 2011-08-04T12:40:16.503 に答える