问题描述
技术堆栈:C#,SpecFlow,WinAppDriver,Nunit [测试运行器]
场景:
这是一个自动化测试项目,我需要在其中集成使用Selenium网格体系结构的并行测试。我已经设置了HUB和NODE,并且当我尝试运行多个测试用例时[说2]我得到以下异常。
BoDi.ObjectContainerException:不支持具有相同最大参数计数的多个公共构造函数
堆栈跟踪:
----> BoDi.ObjectContainerException:不支持多个具有相同最大参数计数的公共构造函数! OpenQA.Selenium.Appium.AppiumDriver`1 [[OpenQA.Selenium.Appium.Windows.WindowsElement,Appium.Net,Version = 4.2.0.0,Culture = neutral,PublicKeyToken = null]] 堆栈跟踪: RuntimeMethodHandle.InvokeMethod(对象目标,对象[]参数,签名sig,布尔值构造函数) RuntimeConstructorInfo.Invoke(BindingFlags invokeAttr,活页夹活页夹,Object []参数,CultureInfo文化) ObjectContainer.CreateObject(类型类型,ResolutionList resolutionPath,RegistrationKey keyToResolve) TypeRegistration.Resolve(ObjectContainer容器,RegistrationKey keyToResolve,ResolutionList resolutionPath) ObjectContainer.ResolveObject(RegistrationKey keyToResolve,ResolutionList resolutionPath) ObjectContainer.Resolve(Type typetoResolve,ResolutionList resolutionPath,字符串名称) ObjectContainer.Resolve(Type typetoResolve,字符串名称) TestObjectResolver.ResolveBindingInstance(Type bindingType,IObjectContainer容器)第11行 lambda_method(Closure,IContextManager,String) BindingInvoker.InvokeBinding(IBinding绑定,IContextManager contextManager,Object []参数,ITestTracer testTracer,TimeSpan&持续时间)第70行 TestExecutionEngine.ExecuteStepMatch(BindingMatch match,Object [] arguments)第20行 TestExecutionEngine.ExecuteStep(IContextManager contextManager,StepInstance stepInstance)第100行 TestExecutionEngine.OnAfterLastStep()第21行 TestRunner.CollectScenarioErrors()第78行
挂钩类文件
public Hooks(ScenarioContext sc){
this.sc = sc;
this.objectContainer = sc.ScenarioContainer.ObjectContainer;
}
[BeforeScenario]
public InitializeWinAppDriver(){
this.webDriver = new WindowsDriver<WindowsElement>("{uri of Hub}","{appium options}");
objectContainer.RegisterInstanceAs<WindowsDriver<WindowsElement>>(webDriver);
}
步骤类 私人LoginUi loginUiObj;
public LoginStep(ScenarioContext sc){
this.WebDriver = sc.ObjectContainer.Resolve<WindowsDriver<WindowsElement>>();
this.loginUiObj - new LogionUi(WebDriver);
}
UI元素类
private WindowsDriver<WindowsElement> winAppDriver
public LoginUi(WindowsDriver<WindowsElement> driver) => winAppDriver = driver;
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)