我正在ark.com上测试..
以下代码适用于带有watir-webdriver的firefox,但分别为google chrome和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)
我尝试了以下堆栈溢出建议无效How do I use Watir::Waiter::wait_until to force Chrome to wait?
另外,我的代码在firefox中完美运行但在其他浏览器中没有,为什么会出现这种情况呢? 任何帮助,将不胜感激。感谢。
答案 0 :(得分:3)
正如其他一些posts所述,您可以使用以下内容全屏显示浏览器:
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所说,登录链接应该在那里(假设你的屏幕不是太小)。
答案 1 :(得分:1)
查看Chrome和Firefox中的网站,我会说有一些错误或不需要的功能。
如果您使用的网络浏览器的宽度太窄,则注册按钮会完全消失。
我会说这就是为什么你会遇到奇怪的错误。
通过在Chrome浏览器启动后立即最大化来测试此功能。从我的测试中,这可以找到注册按钮。
我不确定默认情况下最大化浏览器的方法,但也许这里的其他人知道或能够建议一种方法来解决它。