对于我的第一个使用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"));
}
答案 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}}