C#-Selenium-UI测试-IWebDriver-对象引用未设置为对象的实例

时间:2018-09-05 21:06:38

标签: c# visual-studio selenium

对于我的第一个使用c#和硒的测试用例,我想打开google.com网站,在输入字段中键入内容,然后单击“搜索”。问题是,我得到了System.NullReferenceException,因为WebDriver为Null。但是为什么WebDriver为null?

    public class Base
{

    public IWebDriver WebDriver;
    public GooglePageObjects GooglePO;
    public PageActions PageAction;
    public Base()
    {
        WebDriver = new ChromeDriver(@"C:\ChromeDriver");
        GooglePO = new GooglePageObjects(WebDriver);
        PageAction = new PageActions(WebDriver);
    }
}

public class GooglePageObjects
{
    IWebDriver WebDriver;

    public GooglePageObjects(IWebDriver WebDriver)
    {
        WebDriver = this.WebDriver;
    }

    public IWebElement SearchField => WebDriver.FindElement(By.CssSelector("#gs_lc0 #lst-ib"));
    public IWebElement SearchButton => WebDriver.FindElement(By.CssSelector("#gs_lc0 #lst-ib"));
    public IWebElement SearchBar => WebDriver.FindElement(By.CssSelector("#hdtb-s #hdtb-msb"));

}

2 个答案:

答案 0 :(得分:1)

好的,我发现了错误。应该是:

this.WebDriver = WebDriver

而不是:

WebDriver = this.WebDriver

答案 1 :(得分:0)

我建议您遵循:https://www.c-sharpcorner.com/UploadFile/8a67c0/C-Sharp-coding-standards-and-naming-conventions/

在这种情况下,您不会混淆相同的变量名称。

因此,代码的第二部分将是:

{{1}}