C# 显式等待不';不要停止流动

C# 显式等待不';不要停止流动,c#,selenium,unit-testing,selenium-webdriver,C#,Selenium,Unit Testing,Selenium Webdriver,我是测试新手,一直在学习我的课程。我尝试在打开两个不同Url的测试中使用显式等待。在单击第二个Url之前,我希望等待30秒,但我的测试只需10到13秒即可完成 [TestMethod] public void InterrogatingIWEBElements() { var driver = getChromeDriver(); driver.Navigate().GoToUrl("http://www

我是测试新手,一直在学习我的课程。我尝试在打开两个不同Url的测试中使用显式等待。在单击第二个Url之前,我希望等待30秒,但我的测试只需10到13秒即可完成

 [TestMethod]
        public void InterrogatingIWEBElements()
        {
            var driver = getChromeDriver();
            driver.Navigate().GoToUrl("http://www.ultimateqa.com/automation/");
            var myelement = driver.FindElement(By.XPath("//*[@href='http://courses.ultimateqa.com/users/sign_in']"));
            WebDriverWait wait = new WebDriverWait(driver, TimeSpan.FromSeconds(30));
            IWebElement element = wait.Until(ExpectedConditions.ElementIsVisible(By.XPath("//*[@href='http://courses.ultimateqa.com/users/sign_in']")));
            myelement.Click();
        }
WebDriver方法


        private IWebDriver getChromeDriver()
        {
            var outputDirectory = Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location);
            return new ChromeDriver(outputDirectory);
        }

这里的显式等待告诉驱动程序在30秒内尝试查找元素。如果找到元素,则结束等待并继续执行。这里的显式等待意味着您要等待这个特定元素一段时间,而另一方面,每当您尝试获取一个元素时,就会发生隐式等待


如果出于某种原因需要等待30秒,您可以使用Thread.Sleep(TimeSpan.FromSeconds(30))方法-但是不要使用它来等待加载元素。

WebDriver中的30秒是超时-Selenium等待ExpectedCondition返回True的最长时间。如果需要暂停,请使用
Thread.Sleep(3000)