【发布时间】:2014-07-28 14:39:42
【问题描述】:
在执行场景时,我需要在浏览器中启动一个新选项卡并执行我的脚本。我们可以使用 Cucumber Page Object 来实现它吗?
我还需要间歇性地与新旧标签进行交互。请帮我解决这个问题。谢谢。
【问题讨论】:
标签: ruby cucumber pageobjects page-object-gem
在执行场景时,我需要在浏览器中启动一个新选项卡并执行我的脚本。我们可以使用 Cucumber Page Object 来实现它吗?
我还需要间歇性地与新旧标签进行交互。请帮我解决这个问题。谢谢。
【问题讨论】:
标签: ruby cucumber pageobjects page-object-gem
如果您的测试作为其操作的一部分启动新标签,那么这个答案应该可以帮助您切换到新标签 - Controlling new tab to operate using Watir? (Ruby)
如果您想打开一个新的浏览器实例来完成测试的其他部分,那么您可以使用 watir 创建第二个浏览器。例如
@browser = Watir::Browser.new :firefox
@second_browser = Watir::Browser.new :firefox
然后将相关的浏览器实例传递给你的页面对象构造函数
my_page_object = MyPageObjectClass.new(@second_browser)
【讨论】:
尝试使用这样的东西:
page.driver.browser.switch_to.window (page.driver.browser.window_handles.last)
switch_to 是一种 selenium 方法,可让您将上下文更改为新窗口。 window_handles 是当前打开的窗口的列表。
“在窗口和框架之间移动”部分中的Selenium docs 中的更多详细信息。文档适用于 javascript,但也有 Ruby Bindings。
【讨论】: