0

私はこれをark.comでテストしています。

次のコードは、watir-webdriverを使用するFirefoxで完全に機能しますが、GoogleChromeブラウザとOperaブラウザでそれぞれエラーが発生します。

ここにコードがあります:

require "rubygems"
require "watir-webdriver"

b = Watir::Browser.new :ff
b.goto "http://www.ark.com"

# Signing in
7.times{b.link(:text, "Sign in").flash}
sleep 3
b.link(:text, "Sign in").click
sleep 3
# Popup
b.text_field(:name, "login_email").set "email@gmail.com"
b.send_keys :tab
b.text_field(:name, "login_password").set "password"
b.button(:value, "Sign in").click
puts b.title

次のようにコードを変更すると、エラーが発生します。

b = Watir::Browser.new :chrome 

また

b = Watir::Browser.new :opera

次のエラーメッセージが表示されます。

You may only interact with visible elements (Selenium::WebDriver::Error::ElementNotVisibleError)

次のスタックオーバーフローの提案を無駄に試しましたが、Watir :: Waiter :: wait_untilを使用してChromeを強制的に待機させるにはどうすればよいですか?

また、私のコードはFirefoxで完全に機能しますが、他のブラウザでは機能しません。なぜそうなるのでしょうか。どんな助けでもいただければ幸いです。ありがとう。

4

2 に答える 2

3

他のいくつかの投稿で述べられているように、次の方法でブラウザを全画面表示できます。

screen_width = b.execute_script("return screen.width;")
screen_height = b.execute_script("return screen.height;")
b.driver.manage.window.resize_to(screen_width,screen_height)
b.driver.manage.window.move_to(0,0)

次に、anonygooseが言ったように、サインインリンクがそこにあるはずです(画面が小さすぎないことを前提としています)。

于 2012-04-30T14:17:30.067 に答える
1

ChromeとFirefoxの両方でWebサイトを見ると、何らかのバグや不要な機能が発生していると思います。

使用しているWebブラウザの幅が狭すぎる場合、サインアップボタンは完全に消えます。

そういうわけであなたは奇妙なエラーを受け取っていると思います。

Chromeブラウザが起動したらすぐに最大化して、これをテストします。私のテストから、これによりサインアップボタンを見つけることができます。

デフォルトでどちらかのブラウザを最大化する方法はわかりませんが、おそらくここにいる他の誰かがそれを実行する方法を知っているか、提案することができます。

于 2012-04-30T14:08:36.437 に答える