c# - 尝试并行化 WebDriver 以进行测试时需要对象引用
问题描述
我目前正在尝试为我正在通过 Selenium 运行以测试网站的 SpecFlow 测试实现滚动功能。我需要能够向下滚动,以便驱动程序可以看到某些元素并对其进行测试。基本上,我编写了一个滚动功能(使用 webdriver 作为 IJavaSriptExecutor),但是当我在测试中实现该步骤时,它会尝试打开一个单独的 webdriver。我需要此滚动功能在当前正在测试其他功能的驱动程序上执行。基本上,如果有意义的话,我需要一切都保持一致。无论如何,这是我的代码,底部有错误。我不知道问题是什么。
namespace (mynamespace)
{
[Binding]
public class SeleniumContext
{
public SeleniumContext()
{
//create the selenium context
WebDriver = new ChromeDriver();
}
public IWebDriver WebDriver { get; private set; }
}
public class BeforeAllTests
{
private readonly IWebDriver objectContainer;
private static SeleniumContext seleniumContext;
public BeforeAllTests(IWebDriver container)
{
this.objectContainer = objectContainer;
}
[BeforeTestRun]
public static void RunBeforeAllTests()
{
seleniumContext = new SeleniumContext();
}
[BeforeScenario]
public static void RunBeforeScenario()
{
objectContainer.RegisterInstanceAs<SeleniumContext>(seleniumContext);
}
[Then(@"I scroll down")]
public void ThenIScrollDown()
{
ScenarioContext.Current.Pending();
}
}
}
严重性代码描述项目文件行抑制状态错误 CS0120 非静态字段、方法或属性“BeforeAllTests.objectContainer”需要对象引用
解决方案
推荐阅读
- python - 如何使用 pyignite 从表中删除条目?
- android - "
在使用 Google Play 服务时遇到问题。请再试一次”,同时使用 Google NearBy Messages API - android - 当前在 Flutter 中使用 List 进行扩展或 flex 滚动的方法
- python - 如何指示python等待作业运行,直到变量取特定值
- javascript - 在 GET 表单提交中解释瑞典语字母(å、ä、ö)
- r - 是否有一行代码可以添加到函数中以删除 = 0 的所有结果
- javascript - 在 ramda.js 中调用 R.assocPath() 中的函数
- scala - 在类型参数上创建 Show 实例?
- javascript - 为什么我的 Javascript 循环只返回第一个值?
- javascript - 渲染运行两次