Kab*_*oft 36 c# selenium timeout webdriver wait
我正在使用Selenium 2.20 WebDriver使用C#创建和管理firefox浏览器.要访问页面,我使用以下代码,在访问URL之前设置驱动程序超时:
driver.Manage().Timeouts().ImplicitlyWait(TimeSpan.FromSeconds(5)); // Set implicit wait timeouts to 5 secs
driver.Manage().Timeouts().SetScriptTimeout(new TimeSpan(0, 0, 0, 5)); // Set script timeouts to 5 secs
driver.Navigate().GoToUrl(myUrl); // Goto page url
Run Code Online (Sandbox Code Playgroud)
问题是有时页面需要永远加载,并且看起来使用selenium WebDriver加载页面的默认超时是30秒,这太长了.我不相信我设置的超时适用于使用GoToUrl()方法加载页面.
所以我试图弄清楚如何设置页面加载的超时,但是,我找不到任何实际工作的属性或方法.当我单击一个元素时,默认的30秒超时似乎也适用.
有没有办法将页面加载超时设置为特定值,以便当我调用GoToUrl()方法时,它只会等待我指定的时间才能继续?
Jos*_*osh 35
driver.Manage().Timeouts().PageLoad = TimeSpan.FromSeconds(5);
Run Code Online (Sandbox Code Playgroud)
注意:driver.Manage().Timeouts().SetPageLoadTimeout(TimeSpan.FromSeconds(5))
现已弃用.
kta*_*m33 31
如果这有助于任何人仍在寻找答案,那么C#WebDriver API现在包含适当的方法.
driver.Manage().Timeouts().SetPageLoadTimeout(timespan)
Run Code Online (Sandbox Code Playgroud)
有了这个,您应该能够明确声明等待。
WebDriverWait wait = new WebDriverWait(browser, new TimeSpan(time in seconds));
wait.until(Your condition)
Run Code Online (Sandbox Code Playgroud)
您还可以更改隐式等待时间
driver.Manage().Timeouts().ImplicitlyWait(TimeSpan.FromSeconds(10));
Run Code Online (Sandbox Code Playgroud)
我认为这是 C# 中的语法。(不确定)
在红宝石中它是
@driver.manage.timeouts.implicit_wait = 30
@wait = Selenium::WebDriver::Wait.new(:timeout => 30)
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
66135 次 |
最近记录: |