Ruby watir webdriver-未找到窗口
另一个瓦蒂尔问题。此代码一直工作到Ruby watir webdriver-未找到窗口,ruby,watir,watir-webdriver,Ruby,Watir,Watir Webdriver,另一个瓦蒂尔问题。此代码一直工作到add_task 登录后,auth窗口关闭,并使用登录键返回主窗口。但我得到了这个错误: 你好 测试添加任务 [远程服务器]file:///var/folders/3w/b7rcpqfj7kl3wtv56jt99yx00000gn/T/webdriver-profile20120919-9069-1ua1lm9/extensions/fxdriver@googlecode.com/components/command_processor.js:10212:在“未
add_task
登录后,auth窗口关闭,并使用登录键返回主窗口。但我得到了这个错误:
你好
测试添加任务
[远程服务器]file:///var/folders/3w/b7rcpqfj7kl3wtv56jt99yx00000gn/T/webdriver-profile20120919-9069-1ua1lm9/extensions/fxdriver@googlecode.com/components/command_processor.js:10212:在“未知”中:未找到窗口。浏览器窗口可能已关闭。(Selenium::WebDriver::Error::NoSuchWindowError)
我认为问题在于,切换到登录弹出窗口后,脚本不会从中切换出来。因此,在添加_任务期间,当它尝试单击链接时,它正在尝试登录弹出窗口,该窗口已关闭 在
basic\u auth
方法中,您希望将要在弹出窗口中执行的操作作为块传递到窗口。使用方法
所以你想要:
$browser.window(:title, 'Sign In').use do
if logintype == 'fb'
$browser.link(:name, 'login-facebook id=').click
$browser.text_field(:id,'email').set(usr)
$browser.text_field(:id,'pass').set(pwd)
puts 'form submit'
sleep 3
$browser.form(:id,'login_form').submit
puts 'hello world'
else
$browser.text_field(:id,'lgnId').set('changes')
$browser.text_field(:id,'pwdId').set('letmeinnow')
sleep 3
$browser.form(:name,'LoginActionForm').submit
puts 'hi there'
end
end
(请注意第一行末尾添加的do
,以及末尾添加的end
。我认为问题在于切换到登录弹出窗口后,脚本不会从中退出。因此,在添加_任务期间,当它尝试单击链接时,它正在尝试登录弹出窗口,该窗口已关闭
在basic\u auth
方法中,您希望将要在弹出窗口中执行的操作作为块传递到窗口。使用方法
所以你想要:
$browser.window(:title, 'Sign In').use do
if logintype == 'fb'
$browser.link(:name, 'login-facebook id=').click
$browser.text_field(:id,'email').set(usr)
$browser.text_field(:id,'pass').set(pwd)
puts 'form submit'
sleep 3
$browser.form(:id,'login_form').submit
puts 'hello world'
else
$browser.text_field(:id,'lgnId').set('changes')
$browser.text_field(:id,'pwdId').set('letmeinnow')
sleep 3
$browser.form(:name,'LoginActionForm').submit
puts 'hi there'
end
end
(请注意第一行末尾添加的do
和末尾额外的end
。很抱歉,if语句的end
意外丢失。代码已更新。很抱歉,if语句的end
意外丢失。代码已更新。