Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby watir webdriver-未找到窗口_Ruby_Watir_Watir Webdriver - Fatal编程技术网

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意外丢失。代码已更新。