当我从BasePage属性获取值时,驱动程序有一个空值:
public abstract class BasePage
{
public static IWebDriver Driver { get; }
public BasePage(IWebDriver driver)
{
}
}
驱动程序实例是在不同的类中创建的
[Binding]
public class WebDriverSupport
{
private readonly IObjectContainer objectContainer;
private ChromeDriver webdriver;
public WebDriverSupport(IObjectContainer objectContainer)
{
this.objectContainer = objectContainer;
}
[BeforeScenario]
public void InitializeWebDriver()
{
this.webdriver = new ChromeDriver();
objectContainer.RegisterInstanceAs<IWebDriver>(webdriver);
}
}
我认为我在实例开始之前就得到了值。你怎么说?由于所有调用都使用基类,这可能是个问题。
我通过解决了这个问题
1将集合添加到属性
public static IWebDriver Driver { get; set; }
2-将驱动程序id传递给BasePage。驱动
public void Initialize()
{
this.webdriver = new ChromeDriver();
BasePage.Driver = webdriver;
objectContainer.RegisterInstanceAs<IWebDriver>(this.webdriver);
}