使用Appium驱动程序时通过NTLM代理路由流量

时间:2019-06-24 14:11:01

标签: c# selenium proxy appium browserstack

在我的应用程序中,我正在为客户端应用程序安排移动应用程序测试。使用Browserstack。 不幸的是,当客户端在其本地计算机上运行测试时,他无法与Browserstack建立连接。发生了所有“非内部”流量都经过NTLM代理的情况,因此我的应用无法创建与BS的直接连接。

我试图将配置文件设置更改为使用默认代理,但并没有帮助-我收到407授权错误。 目前,我正在尝试使其直接在代码中运行,但是没有运气。而且,我读到AppiumDriver没有使用任何与代理相关的设置。

var proxy = new Proxy();
proxy.Kind = ProxyKind.AutoDetect;
proxy.IsAutoDetect = true;

AppiumOptions caps = new AppiumOptions();
caps.AddAdditionalCapability("browserstack.user", "user");
caps.AddAdditionalCapability("browserstack.key", "key");
caps.AddAdditionalCapability("device", "Samsung Galaxy S8");
caps.AddAdditionalCapability("os_version", "7.0");
caps.AddAdditionalCapability("name", string.Format("Requested 
time: {0}", DateTime.Now));
caps.AddAdditionalCapability("realMobile", true);
caps.AddAdditionalCapability("browserstack.idleTimeout", 300);
caps.AddAdditionalCapability("app", "MobileAppName");
caps.AddAdditionalCapability("ACCEPT_SSL_CERTS", true);
caps.Proxy = proxy;

try
{
 return new  
 AndroidDriver<OpenQA.Selenium.Appium.Android.AndroidElement>(
 new Uri("https://hub-cloud.browserstack.com/wd/hub"), caps);
 }
 catch (Exception e)
 {
 throw new Exception($"Couldn't create browserstack 
 instance. {e.Message + e.StackTrace}");
 }
 }

我要实现的是强制Appium驱动程序使用客户端计算机上定义的代理和凭据来建立与Browserstack集线器的连接。

欢迎大家提出任何建议,因为我现在在这个问题上苦苦挣扎太久了。

1 个答案:

答案 0 :(得分:0)

看来Appium本身不支持以编程方式传递代理详细信息。相同的相关链接-#1#2#3

您可以尝试将客户端计算机中的BrowserStack Hub地址列入白名单,以连接到BrowserStack Hub。