我们知道在处理多个页面的时候,如弹出框,我们可以通过 switch_to.window来切换窗体。但是当需要启动两个浏览器进行测试的时候,再使用switch发现无法正确切换到需要的窗体上。通过debug发现switch只能在同一个driver启动的浏览器下的多窗体间进行切换。其实在多浏览器启动的情况下,切换的不是窗体,而是driver本身。selenium似乎并没有直接的方法来进行这种情况的切换。其实我们采用变量赋值的方式可以到达我们想要的目的。
driver1=Selenium::WebDriver.for :chrome
#启动第一个浏览器
driver2=Selenium::WebDriver.for :chrome
#启动第二个浏览器
#定义一个方法用于切换driver
def switch(d)
$driver = (d) #$变量是ruby的全局变量,语法就不在这里介绍了
end
$driver.click #通过这个全局变量来进行下一步的操作