c# - 使用页面对象模式设计时驱动程序具有空值
问题描述
当我从 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.Driver
public void Initialize()
{
this.webdriver = new ChromeDriver();
BasePage.Driver = webdriver;
objectContainer.RegisterInstanceAs<IWebDriver>(this.webdriver);
}
推荐阅读
- mailchimp - mailchimp 活动发送类型 webhook
- web - 基于下拉的数据查询网站 - 如何提取底层数据?
- javascript - 找不到模块“setupDevtools”React-Native
- postgresql - 将 VMware VCenter 备份从 6.0 还原到 6.0 失败
- reactjs - 从 15.x 升级后,Google 在 React 16 中出现错误
- javascript - Nativescript:滚动时重复使用 Listview 项目
- html - 有没有办法使用 ng-bind-html 绑定纯文本
- ios - 在异步函数上同时获取进度和错误操作
- angular - 使用 Angular 动画更改背景颜色
- javascript - 滚动动画