cas*_*zlo 2 c# selenium-webdriver
为什么这个Selenium C#代码不等到元素被加载?
_fireFoxWebDriver.Manage().Timeouts().ImplicitlyWait(TimeSpan.FromSeconds(1000));
Run Code Online (Sandbox Code Playgroud)
我也选择Thread.Sleep(5000);
不使用!有人可以向我解释一下!
如果使用Thread.Sleep(5000),则测试将仅等待5秒钟并返回执行。如果您需要等待某个元素不存在或不可见,请使用WebDriverWait。例:
var timeout = 10000; // in milliseconds
var wait = new WebDriverWait(Driver, TimeSpan.FromMilliseconds(timeout));
wait.Until(ExpectedConditions.ElementIsVisible(By.CssSelector("your-selector")));
Run Code Online (Sandbox Code Playgroud)
另外,如果您需要等待页面加载,则可以使用以下代码:
var timeout = 10000; // in milliseconds
var wait = new WebDriverWait(Driver, TimeSpan.FromMilliseconds(timeout));
wait.Until(d => ((IJavaScriptExecutor)d).ExecuteScript("return document.readyState").Equals("complete"));
Run Code Online (Sandbox Code Playgroud)
在两种情况下,查找元素的限制时间均为10秒。如果此时没有找到任何元素,则测试不会通过。否则,如果在5秒钟内找到了一个元素,则代码不会等待所有剩余的秒数,它将继续进行下一个代码行。
这种对我们的等待很有用,因为您无需等待所有的限制时间来查找元素,仅需要必要的时间即可。
| 归档时间: |
|
| 查看次数: |
9621 次 |
| 最近记录: |