【发布时间】:2017-11-25 23:59:55
【问题描述】:
我需要在我的助手(在新窗口中打开)中调用另一个助手并打开并切换到另一个窗口,但是当我尝试执行此操作时 - 我收到此错误:
Capybara::ScopeError:
`switch_to_window` is not supposed to be invoked from `within`'s, `within_frame`'s' or `within_window`'s' block.
有没有办法打开并切换到另一个窗口?
[编辑1]
def create_ticket(kind, products = [])
visit('inventory/parcels/')
products.each do |product|
if product[:serialized]
serialized = find_device(product[:status], product[:id])
所以这里是 find_device 助手:
def find_device(status_id, product_id)
within_window open_new_window do
visit('inventory/items?per=25)
【问题讨论】:
-
如果您发布一些有问题的代码会有所帮助。
-
@mmichael 我添加了导致错误的代码。提前致谢
-
within_window(switch_to_window(windows.last)) do YOUR CODE end对你有用吗? -
是否在另一个
within_window块内调用了create_ticket?如果你发布了足够多的代码,我们可以真正知道发生了什么,那真的很有帮助。 -
不,我收到“没有这样的会话”错误(认为这是因为驱动器没有打开新窗口并试图切换到它
标签: ruby selenium rspec automated-tests capybara