0

我在使用 Selenium 和 Protractor-net 用 C# 编写的测试在 BrowserStack 上测试 iPhone 时遇到问题。

测试开始运行,在打开我网站的网页后,它只是挂起,永远不会进入 StringAssert 步骤。发生这种情况时没有错误。我必须手动停止我的测试和 BrowserStack 中的会话才能继续。

我尝试从 BrowserStack 的功能中打开日志记录,但没有返回错误并且控制台日志为空。我也尝试过多种 iPhone 配置。

请注意,此示例测试适用于 Android Google Pixel 2 和 BrowserStack 上的 Windows 10 测试,只是 iPhone 给了我这个问题。

这是我的示例测试:

class Class1
{
    [Test]
    public static void FirstTest()
    {
        IWebDriver driver;
        DesiredCapabilities capability = new DesiredCapabilities();
        capability.SetCapability("browserName", "iPhone");
        capability.SetCapability("device", "iPhone 6S");
        capability.SetCapability("realMobile", "true");
        capability.SetCapability("os_version", "11.4");
        capability.SetCapability("browserstack.console", "errors");
        capability.SetCapability("browserstack.user", "");
        capability.SetCapability("browserstack.key", "");

        driver = new RemoteWebDriver(new Uri("http://hub-cloud.browserstack.com/wd/hub/"), capability);
        driver.Manage().Timeouts().AsynchronousJavaScript = TimeSpan.FromSeconds(10);

        NgWebDriver ngdriver = new NgWebDriver(driver);
        ngdriver.Navigate().GoToUrl("https://myproduction.website/");
        StringAssert.Contains("MyTitle", ngdriver.Title);

        NgWebElement query = ngdriver.FindElement(NgBy.Model("employeeCode"));
        query.Clear();
        query.SendKeys("Browserstack");
        Console.WriteLine(ngdriver.Title);
        ngdriver.Quit();
    }
}
4

1 回答 1

1

我了解到您正在真实的 iOS 设备上运行 Protractor 测试。Protractor 使用 execute_async 方法注入 JavaScript。Appium 不完全支持 execute_async 方法,因此您可能会看到失败。您将在以下链接中找到有关该问题的更多详细信息:

于 2018-07-27T18:11:56.317 回答