WebDriver我试图使用isElementPresent但错误显示在当前上下文中不存在

时间:2013-08-28 14:43:27

标签: c# selenium webdriver selenium-webdriver

我是WebDriver的新手并在C#Visual Studio中编写此代码(下面的代码片段) 我正在使用IsElementPresent验证主页上是否存在文本字段。 我收到错误当前上下文中不存在名称IsElementPresent。 我做错了什么?

using System;
using System.Text;
using System.Text.RegularExpressions;
using System.Collections.Generic;
using System.Threading;
using System.Linq;
using NUnit.Framework;
using OpenQA.Selenium;
using OpenQA.Selenium.Firefox;
using OpenQA.Selenium.Support.UI;

namespace Homepage_check2
{
    [TestFixture]
    public class Driver
    {
        IWebDriver driver;

        [SetUp]
        public void Setup()
        {
            // Create a new instance of the Firefox driver
            driver = new FirefoxDriver();
        }

        [TearDown]
        public void Teardown()
        {
            driver.Quit();
        }

        [Test]
        public void homepage()
        {
            //Navigate to the site
            driver.Navigate().GoToUrl("http://www.milkround.com");

           Assert.IsTrue(IsElementPresent(By.Id("ctl00_uxToolbar_uxQueryTextBoxToolbar")));

        }
        catch
        {
            //verificationErrors.Append(e.Message);
        }

        }
    }
}

1 个答案:

答案 0 :(得分:1)

“IsElementPresent”来自哪里?我从来没有见过在WebDriver中使用的那个。

在WebDriver中,您需要围绕findElement方法包装try catch。

e.g

Boolean elementDisplayed;

try {

WebElement element = driver.findElement(By.Id("ctl00_uxToolbar_uxQueryTextBoxToolbar"));
elementDisplayed = element.displayed; 

}
catch (NoSuchElementException e) {
elementDisplayed = false;
}

显然,您可以将它包装在某种辅助方法中,或者将其添加到WebDriver类中。

我会把它留给你,但这是一般的想法