如何在android,iOS,ipad上使用saucelabs执行硒测试脚本

问题描述:

我可以在三个浏览器中使用saucelabs运行我的脚本,但我需要在移动设备以及ipad上运行它。有人能帮助我如何添加desiredCapabilities?我的代码如下:如何在android,iOS,ipad上使用saucelabs执行硒测试脚本

public static Object[][] sauceBrowserDataProvider(Method testMethod) { 
    return new Object[][]{ 
      //new Object[]{"internet explorer", "11", "Windows 8.1"}, 
      //new Object[]{"firefox", "44", "Windows 7"}, 
      new Object[]{"browser", "44", "Android"}, 
      new Object[]{"chrome", "51","Windows 7"}, 
      new Object[]{"firefox", "44","iOS"} 
    }; 
} 

private WebDriver createDriver(String browser, String version, String os) throws MalformedURLException { 
    DesiredCapabilities capabilities = new DesiredCapabilities(); 
    capabilities.setCapability(CapabilityType.BROWSER_NAME, browser); 
    if (version != null) { 
     capabilities.setCapability(CapabilityType.VERSION, version); 
    } 
    capabilities.setCapability(CapabilityType.PLATFORM, os); 
    capabilities.setCapability("name", "Sauce Sample Test"); 
    webDriver.set(new RemoteWebDriver(
      new URL("http://" + authentication.getUsername() + ":" + authentication.getAccessKey() + "@ondemand.saucelabs.com:80/wd/hub"), 
      capabilities)); 
    sessionId.set(((RemoteWebDriver) getWebDriver()).getSessionId().toString()); 
    return webDriver.get(); 
} 

@Test(dataProvider = "hardCodedBrowsers") 
public void webDriver(String browser, String version, String os) throws Exception { 
     WebDriver driver = createDriver(browser, version, os); 
} 

使用此代码我可以在三个浏览器中运行,但无法运行移动设备。请帮帮我。

具有u试过这样的事情:

capabilities.setCapability(CapabilityType.deviceName, "Google Nexus 7 HD Emulator"); 
capabilities.setCapability(CapabilityType.browserName, "Safari"); 

我已经试过类似的东西与BrowserStack和它的作品。

请让我知道。

+0

是的我试过这一个also.but它不工作。 –

+0

嗨你的意思是不工作?你有错误信息吗?你不能修复它吗? – pjcalvo

私人webdriver的createDriver()抛出MalformedURLException的{

DesiredCapabilities caps = new DesiredCapabilities(); 

    /*capabilities.setCapability("platformName", platformName); 
    capabilities.setCapability("deviceName", deviceName); 
    capabilities.setCapability("platformVersion", platformVersion); 
    //capabilities.setCapability("app", this.appURI); 
    capabilities.setCapability("browserName", browserName); 
    capabilities.setCapability("deviceOrientation", deviceOrientation); 
    capabilities.setCapability("appiumVersion", appiumVersion);*/ 

    caps.setCapability("appiumVersion", "1.5.3"); 
    caps.setCapability("deviceName","iPhone 6s Simulator"); 
    caps.setCapability("deviceOrientation", "portrait"); 
    caps.setCapability("platformVersion","9.1"); 
    caps.setCapability("platformName", "iOS"); 
    caps.setCapability("browserName", "Safari"); 

}

我将此代码添加到我的脚本及其工作正常now.Thank你们

您可以使用QMetry自动化框架您可以在此处提供configuration外部代码。

您需要使用远程驱动程序并设置以下属性以指示您在执行实验室时执行。

remote.server=http://username:[email protected]:80/wd/hub 
remote.port=80 

提供适当的驱动程序功能。请参阅setting driver capabilities

注意:确保您以驱动程序名称提供远程驱动程序。例如

driver.name=firefoxRemoteDriver