gpt4 book ai didi

ruby - 增加单个测试的 WebDriver 网络超时

转载 作者:行者123 更新时间:2023-12-05 05:26:02 25 4
gpt4 key购买 nike

有一个很重的页面,在访问之后 Selenium 有一分钟没有响应 Capybara,所以无论我调用什么,都会抛出 Net::ReadTimeout.
我可以像这样在全局范围内编辑它:

http_client = Selenium::WebDriver::Remote::Http::Default.new
http_client.timeout = 120
Capybara::Selenium::Driver.new(app,
http_client: http_client,

但在某些重复超时的情况下,我的测试会持续太长时间,所以我不想在全局范围内增加超时。
我想以某种方式为单个测试增加它:

before do
@timeout = page.driver.bridge.http.timeout
page.driver.bridge.http.timeout = 120
end
after do
page.driver.bridge.http.timeout = @timeout
end

但是在/lib/selenium/webdriver/common/driver.rbbridge方法是私有(private)的,而只有browser功能向公众公开。

那么全局编辑这个超时属性的正确方法是什么?

UPD:即使我找到了设置此属性的方法,似乎before/after 方法也不起作用,因为 @http ||=( 将默认超时值保存在 setUp 链中的第一个 before 中,在我的之前。

最佳答案

Capybara 有一个 default_wait_time 可以在测试过程中改变:

using_wait_time 120 do
foo(bar)
end

关于ruby - 增加单个测试的 WebDriver 网络超时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28856503/

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