gpt4 book ai didi

capybara - 不推荐将字符串参数传递给#within_window

转载 作者:行者123 更新时间:2023-12-03 03:11:53 27 4
gpt4 key购买 nike

我正在尝试更新我的代码,因为我当前在运行它时收到以下弃用警告:

“弃用警告:不推荐将字符串参数传递给#within_window。传递窗口对象或 lambda。”

这是代码:

new_window=page.driver.browser.window_handles.last 
page.within_window new_window do
expect(current_url).to eq("url")
end
page.driver.browser.switch_to.window(page.driver.browser.window_handles.last)

我应该如何编辑上述内容,以便不再收到弃用警告?谢谢!

最佳答案

within_window 方法已更改为需要 Capybara::Window 或 proc/lamda。通过字符串定位窗口(即 window_handles.last 返回的内容)已被弃用。

要获取最后一个 Capybara::Window,请使用 windows method 。它的工作原理与 window_handles 类似:

new_window = windows.last
page.within_window new_window do
expect(current_url).to eq("url")
end

请注意,文档指出“返回数组中窗口的顺序未定义。驱动程序可以按窗口的创建时间对窗口进行排序,但这不是必需的。”。我认为使用 window_handles 时也是如此,因此可以安全地假设最后一个窗口是新窗口。

但是,在可能的情况下,最好通过标题等特定内容来定位窗口:

within_window(->{ page.title == 'New window title' }) do
expect(current_url).to eq("url")
end

关于capybara - 不推荐将字符串参数传递给#within_window,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25436923/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com