小编use*_*802的帖子

Selenium C#中的显式等待不起作用.怎么了?

所以我有明确的等待这个问题.我不想使用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

3
推荐指数
1
解决办法
1365
查看次数