首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >需要BrowserStack授权错误

需要BrowserStack授权错误
EN

Stack Overflow用户
提问于 2018-09-26 23:42:46
回答 1查看 445关注 0票数 0

我最近接管了一个项目,该项目在自动化框架中使用BrowserStack进行移动测试。我们使用的代理出现故障,所以我不得不将系统代理更改为工作的代理,我不确定它们是否相关,但这是有意义的。

我以前更改过代理,没有任何问题,所以不确定为什么会发生这种情况。将C#与selenium结合使用,在所有浏览器中都会出现错误。第一次使用这个框架时,我对它的浏览器堆栈侧了解不多。

代码语言:javascript
复制
Result StackTrace:  
at OpenQA.Selenium.Remote.RemoteWebDriver.UnpackAndThrowOnError(Response errorResponse)
   at OpenQA.Selenium.Remote.RemoteWebDriver.Execute(String driverCommandToExecute, Dictionary`2 parameters)
   at OpenQA.Selenium.Remote.RemoteWebDriver.StartSession(ICapabilities desiredCapabilities)
   at OpenQA.Selenium.Remote.RemoteWebDriver..ctor(ICommandExecutor commandExecutor, ICapabilities desiredCapabilities)
   at OpenQA.Selenium.Remote.RemoteWebDriver..ctor(Uri remoteAddress, ICapabilities desiredCapabilities)
   at Framework.CoreUtilities.CustomRemoteWebDriver..ctor(Uri remoteAddress, ICapabilities desiredCapabilities) in Framework\DriverMethods\CustomRemoteWebDriver.cs:line 12
   at Framework.CoreUtilities.BrowserStackDriverUtility.Init(String profile, String environment) in Framework\DriverMethods\BrowserStackDriverUtility.cs:line 43
   at Tests.CoreUtilities.DriverMethods.EnvironmentHooks.BrowserStackHooks.SelectBrowserStackDriver() in Framework\DriverMethods\EnvironmentHooks\BrowserStackHooks.cs:line 29
   at Tests.CoreUtilities.DriverMethods.EnvHooks.BeforeScenarioLocal() in Framework\EnvHooks.cs:line 43
   at lambda_method(Closure , IContextManager )
   at TechTalk.SpecFlow.Bindings.BindingInvoker.InvokeBinding(IBinding binding, IContextManager contextManager, Object[] arguments, ITestTracer testTracer, TimeSpan& duration)
   at TechTalk.SpecFlow.Infrastructure.TestExecutionEngine.InvokeHook(IBindingInvoker invoker, IHookBinding hookBinding, HookType hookType)
   at TechTalk.SpecFlow.Infrastructure.TestExecutionEngine.FireEvents(HookType hookType)
   at TechTalk.SpecFlow.Infrastructure.TestExecutionEngine.FireScenarioEvents(HookType bindingEvent)
   at TechTalk.SpecFlow.Infrastructure.TestExecutionEngine.OnScenarioStart(ScenarioInfo scenarioInfo)
   at TechTalk.SpecFlow.TestRunner.OnScenarioStart(ScenarioInfo scenarioInfo)
   at Tests.Features.Sprint3.S03_SNO3519_View_All_Bills_MOBILEFeature.ScenarioSetup(ScenarioInfo scenarioInfo) in Tests\Features\Sprint3\S03_SNO3519_View_all_bills_MOBILE.feature.cs:line 0
   at Tests.Features.Sprint3.S03_SNO3519_View_All_Bills_MOBILEFeature.TC5_TC6_TC7_Verify_The_Functionality_Of_The_Dropdown_Filter_On_The_All_My_Bills_Page(String email, String password, String accountNumber, String accountType, String[] exampleTags) in Tests\Features\Sprint3\S03_SNO3519_View_all_bills_MOBILE.feature:line 10
--TearDown
   at BoDi.ObjectContainer.TypeRegistration.Resolve(ObjectContainer container, RegistrationKey keyToResolve, ResolutionList resolutionPath)
   at BoDi.ObjectContainer.ResolveObject(RegistrationKey keyToResolve, ResolutionList resolutionPath)
   at BoDi.ObjectContainer.Resolve(Type typeToResolve, ResolutionList resolutionPath, String name)
   at BoDi.ObjectContainer.<>c__DisplayClass55_0.<ResolveArguments>b__0(ParameterInfo p)
   at System.Linq.Enumerable.WhereSelectArrayIterator`2.MoveNext()
   at System.Linq.Buffer`1..ctor(IEnumerable`1 source)
   at System.Linq.Enumerable.ToArray[TSource](IEnumerable`1 source)
   at BoDi.ObjectContainer.ResolveArguments(IEnumerable`1 parameters, RegistrationKey keyToResolve, ResolutionList resolutionPath)
   at BoDi.ObjectContainer.CreateObject(Type type, ResolutionList resolutionPath, RegistrationKey keyToResolve)
   at BoDi.ObjectContainer.TypeRegistration.Resolve(ObjectContainer container, RegistrationKey keyToResolve, ResolutionList resolutionPath)
   at BoDi.ObjectContainer.ResolveObject(RegistrationKey keyToResolve, ResolutionList resolutionPath)
   at BoDi.ObjectContainer.Resolve(Type typeToResolve, ResolutionList resolutionPath, String name)
   at BoDi.ObjectContainer.Resolve(Type typeToResolve, String name)
   at TechTalk.SpecFlow.Infrastructure.TestObjectResolver.ResolveBindingInstance(Type bindingType, IObjectContainer container)
   at TechTalk.SpecFlow.ScenarioContext.GetBindingInstance(Type bindingType)
   at Tests.CoreUtilities.DriverMethods.EnvHooks.AfterEachFeature() in Framework\EnvHooks.cs:line 83
   at lambda_method(Closure , IContextManager )
   at TechTalk.SpecFlow.Bindings.BindingInvoker.InvokeBinding(IBinding binding, IContextManager contextManager, Object[] arguments, ITestTracer testTracer, TimeSpan& duration)
   at TechTalk.SpecFlow.Infrastructure.TestExecutionEngine.InvokeHook(IBindingInvoker invoker, IHookBinding hookBinding, HookType hookType)
   at TechTalk.SpecFlow.Infrastructure.TestExecutionEngine.FireEvents(HookType hookType)
   at TechTalk.SpecFlow.Infrastructure.TestExecutionEngine.FireScenarioEvents(HookType bindingEvent)
   at TechTalk.SpecFlow.Infrastructure.TestExecutionEngine.OnScenarioEnd()
   at TechTalk.SpecFlow.TestRunner.OnScenarioEnd()
   at Tests.Features.Sprint3.S03_SNO3519_View_All_Bills_MOBILEFeature.ScenarioTearDown() in Tests\Features\Sprint3\S03_SNO3519_View_all_bills_MOBILE.feature.cs:line 0
Result Message: 
OpenQA.Selenium.WebDriverException : Unexpected error. <HEAD><TITLE>Authorization Required</TITLE></HEAD>
<BODY BGCOLOR="white" FGCOLOR="black"><H1>Authorization Required</H1><HR>
<FONT FACE="Helvetica,Arial"><B>
Description: Authorization is required for access to this proxy</B></FONT>
<HR>
<!-- default "Authorization Required" response (401) -->
</BODY>

TearDown : BoDi.ObjectContainerException : Interface cannot be resolved: OpenQA.Selenium.IWebDriver (resolution path: Framework.SeleniumContext)
EN

回答 1

Stack Overflow用户

发布于 2018-09-27 00:46:07

这似乎是一个特定于selenium语言绑定如何生成有效负载以及browserstack如何在其端解析它的问题。

根据您分享的错误消息,很可能在解析请求负载时,browserstack无法找到您的用户名和访问密钥

您可以按照下面提到的步骤进行调试:

  • 将行driver = new RemoteWebDriver(new Uri("https://hub-cloud.browserstack.com/wd/hub/"),options);更改为driver = new RemoteWebDriver( new Uri("http://localhost:4444/wd/hub/"),options );。您不需要在本地启动selenium-standalone jar。
  • 启动一个代理来读取本地主机上的流量:4444。(如果需要,您可以使用基于节点的实现。这里有一个这样的实现:https://gist.github.com/hanikhan/f817bd64b063129cb78dc7ed0b66fdb7)
  • Observe,由您正在使用的selenium客户机绑定生成的请求有效负载(如您所提到的v3.14)。例如,我的基于java的selenium客户机会在只需要传递浏览器时生成此代码。

将selenium绑定降级(到它工作的版本),并观察它生成的有效负载。

检查客户端绑定是否使用了严格的检查,由于严格的检查,一些必需的功能在您的端被丢弃。

如果这是真的,那么您将被要求执行以下操作:

  • 提出一个关于selenium C#绑定的问题,以删除对

的严格检查

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52521614

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档