所以我有明确的等待这个问题.我不想使用Thread.Sleep().这是一个简单的测试,它打开一个页面然后前后移动.加载此页面大约需要2-3秒,我想以动态方式(测试)执行此操作.希望我不是太混乱.我做了很多研究,但没有任何作用,也许我做错了什么.(我正在使用Resharper进行单元测试)
在这里我也有解决方案:
https://www.dropbox.com/s/1k5vjc5czvmdd3u/ConsoleApplication2.rar?dl=0
我正在使用FindElement方法的扩展,所以我相信只需调用此方法并自行等待即可.我在解决方案中有一些解释.如果有人给我一些帮助,我将不胜感激.(抱歉没有那么完美的英语).
using System;
using System.Threading;
using ConsoleApplication2.Extensions;
using NUnit.Framework;
using OpenQA.Selenium;
using OpenQA.Selenium.Chrome;
using OpenQA.Selenium.Support.UI;
namespace ConsoleApplication2
{
class UnitTest1
{
private IWebDriver driver = new ChromeDriver();
[SetUp]
public void Initialize()
{
driver.Url = "some url";
Thread.Sleep(3500);
// driver.Manage().Timeouts().ImplicitlyWait(TimeSpan(20));
}
[Test]
public void CheckBackForward()
{
//Go to first page in Online Help
driver.FindElement(By.XPath("//span/ul/li/span/a")).Click();
// So if I am commenting this Thread.Sleep
// it will throw an exception at the extension method at line 13 at "@by"
// …Run Code Online (Sandbox Code Playgroud) c# selenium automated-tests selenium-chromedriver selenium-webdriver