java - Appium Sauce Labs - 不支持的操作系统/浏览器/版本/设备组合

标签 java selenium appium saucelabs desiredcapabilities

我正在尝试在 Sauce Labs 中设置我的第一个 Appium 测试(不是 native 或混合应用程序),并且在尝试设置我的功能时遇到 WebDriverException:

org.openqa.selenium.WebDriverException: Unable to parse remote response: Misconfigured -- Unsupported OS/browser/version/device combo: OS: 'unspecified', Browser: 'iphone', Version: '11.2.2.', Device: 'iPhone Simulator'`

这是我正在做的设置我的上限:

public static DesiredCapabilities CreateAppiumCapabilities(String browser, String version, String platform,String device, String methodName) { 
DesiredCapabilities caps = new DesiredCapabilities(); 
caps.setCapability(MobileCapabilityType.PLATFORM_NAME, platform); 
caps.setCapability(MobileCapabilityType.PLATFORM_VERSION, version); 
caps.setCapability(MobileCapabilityType.DEVICE_NAME, device); 
caps.setCapability(MobileCapabilityType.AUTOMATION_NAME,"XCUITest"); 
caps.setCapability(MobileCapabilityType.BROWSER_NAME, browser); 
caps.setCapability("appiumVersoin", "1.7.2"); 
caps.setCapability("name", methodName); 
System.out.println(caps); 
return caps;

然后,在我的 testBase.java 文件中运行以下命令:

private ThreadLocal<IOSDriver> iosDriver = new ThreadLocal<IOSDriver>();

...
...
...

DesiredCapabilities capabilities = SauceUtils.CreateAppiumCapabilities(browser, version, platform, device, methodName);
                String url = SauceUtils.getURL();
                iosDriver.set(new IOSDriver(new URL(url), capabilities));
                sessionId.set(((IOSDriver) getIosDriver()).getSessionId().toString());

System.out.println(caps) 正确显示所有内容:

Capabilities {appiumVersoin: 1.7.2, automationName: XCUITest, browserName: Safari, deviceName: iPhone Simulator, name: appiumTest, platformName: iOS, platformVersion: 11.2.2}

这是实际测试:

public class AppiumTest extends TestBase {
    @Test(dataProvider = "appium", groups = "Appium", description = "simple appium test")
    public void appiumTest(String browser, String version, String platform, String device, Method method) throws Exception {
        this.createDriver(browser, version, null, method.getName(), device, platform);
        IOSDriver<WebElement> mobiledriver = getIosDriver();
        mobiledriver.get("http://appium.io/");
        Assert.assertEquals(mobiledriver.getCurrentUrl(), "http://appium.io/", "URL Mismatch");
        Assert.assertEquals(mobiledriver.getTitle(), "Appium: Mobile App Automation Made Awesome.", "Title Mismatch");
    }
}

以及 getIosDriver() 函数:

    public IOSDriver<WebElement> getIosDriver() {
        return iosDriver.get();
    }

不确定我在这里做错了什么,任何和所有的帮助将不胜感激! :)

最佳答案

从上面粘贴的代码看来,“appiumVersion”功能中存在拼写错误:

caps.setCapability("appiumVersoin", "1.7.2"); 

应该是

caps.setCapability("appiumVersion", "1.7.2"); 

关于java - Appium Sauce Labs - 不支持的操作系统/浏览器/版本/设备组合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55693317/

相关文章:

java - 替代 quaqua 的 LAF

selenium - 如何在 docker 中的 selenium/node-chrome 上更新网络浏览器

java - 基于内部子属性的 webDriver cssSelector

android - 我们可以在appium中通过ID找到元素吗

java - 是否可以通过在 Android 上使用 Appium 滑动来从最近使用的应用程序屏幕中终止应用程序?

java - 何时调用 loadUserByUsername? ( Spring 安全)

java - StringJoiner 从每行的第一个位置删除定界符

java - 为什么@AfterSuit 在没有alwaysRun=true 的情况下不运行?

java - QAF:java.lang.IllegalArgumentException:必须定义添加操作的键

java - jdbc mysql 与远程数据库的通信链路失败