【问题标题】:Route traffic thru NTLM proxy when using Appium driver使用 Appium 驱动程序时通过 NTLM 代理路由流量
【发布时间】:2019-11-06 08:52:55
【问题描述】:

在我的应用程序中,我正在为客户端应用程序安排移动应用程序测试。使用浏览器堆栈。 不幸的是,当客户端在他的本地计算机上运行测试时,他无法与 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 Driver 使用客户端计算机上定义的代理和凭据与 Browserstack hub 建立连接。

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

【问题讨论】:

    标签: c# selenium proxy appium browserstack


    【解决方案1】:

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

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

    【讨论】:

    • 您好,感谢您的评论!建议将浏览器堆栈地址添加到“白名单”(因此与 BS 的连接不会通过代理),但至少目前,客户端不想在其代理配置中进行此类更改。这就是为什么我试图解决这个问题。由于我没有想法,这个主题是我最后一次尝试找到任何解决方案。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-11-12
    • 2020-02-06
    • 2017-02-01
    • 1970-01-01
    • 2021-03-06
    • 1970-01-01
    • 2015-04-19
    相关资源
    最近更新 更多