使用appium自动化iOS应用程序时遇到异常

时间:2014-08-21 21:25:23

标签: appium

我试图运行的脚本是:

package shivaniios;

import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.remote.DesiredCapabilities;
import org.openqa.selenium.remote.RemoteWebDriver;

import java.net.MalformedURLException;
import java.net.URL;
import java.util.List;
import java.util.concurrent.TimeUnit;

public class MyFirstClass
{
    public static void main(String[] args) throws MalformedURLException {
        DesiredCapabilities capabilities = new DesiredCapabilities();
        capabilities.setCapability("appium-version", "1.2");
        capabilities.setCapability("platformName", "iOS");
        capabilities.setCapability("platformVersion", "7.1");
        capabilities.setCapability("deviceName", "iPhone");
        capabilities.setCapability("app", "/Users/admin/Downloads/Wynk.app");
        WebDriver wd = new RemoteWebDriver(new URL("http://127.0.0.1:4723/wd/hub"),       capabilities);
        wd.manage().timeouts().implicitlyWait(60, TimeUnit.SECONDS);

        //Click on continue button
        WebElement button_Continue = wd.findElement(By.name("Continue"));
        button_Continue.click();

        //Click on skip button
        WebElement button_Skip = wd.findElement(By.name("Skip"));
        button_Skip.click();

        //Click on Skip Tour button
        WebElement button_Skiptour = wd.findElement(By.name("Skip Tour"));
        button_Skiptour.click();

        //Click on Close Tip button
        WebElement button_Closetip = wd.findElement(By.name("Close Tip"));
        button_Closetip.click();

        //Click on Player button
        //WebElement button_Player = wd.findElement(By.name("Player"));
        //button_Player.click();

        //wd.findElement(By.name("Player")).click();

        //Click on seeAll link for moods
        wd.findElement(By.xpath("//UIATableCell[@name='Moods']/UIAButton")).click();

        //syntax of xpath
        //tagName[@attribute='attributevalue']/

        // Number of moods element
        List<WebElement> e = wd.findElements(By.tagName("UIACollectionCell"));
        //div, tr ,td, 
        int actualCount = e.size();
        int expectedCount = 14; // hardcoded

        if(expectedCount==actualCount)
        {
            System.out.println("passed");
        }
        else
        {
            System.out.println("Failed");
        }
        wd.close();
    }
}

执行时会出现以下异常:

'Exception in thread "main" org.openqa.selenium.WebDriverException: An unknown server-side error occurred while processing the command. (WARNING: The server did not provide any stacktrace information)

Command duration or timeout: 2.63 seconds

Build info: version: '2.42.2', revision: '6a6995d', time: '2014-06-03 17:42:30'

System info: host: 'admins-MacBook-Pro-87.local', ip: '192.168.1.197', os.name: 'Mac OS X', os.arch: 'x86_64', os.version: '10.9.4', java.version: '1.7.0_55'

Session ID: 31031deb-5b8e-4d4d-96eb-6995fb7b7927

Driver info: org.openqa.selenium.remote.RemoteWebDriver

Capabilities [{platformVersion=7.1, app=/Users/admin/Downloads/Wynk.app, platform=MAC, databaseEnabled=false, javascriptEnabled=true, deviceName=iPhone, platformName=iOS, browserName=iOS, appium-version=1.2, webStorageEnabled=false, desired={platformVersion=7.1, app=/Users/admin/Downloads/Wynk.app, platformName=iOS, deviceName=iPhone, appium-version=1.2}, locationContextEnabled=false, warnings={}, takesScreenshot=true}]
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
at java.lang.reflect.Constructor.newInstance(Constructor.java:526)
at org.openqa.selenium.remote.ErrorHandler.createThrowable(ErrorHandler.java:204)
at org.openqa.selenium.remote.ErrorHandler.throwIfResponseFailed(ErrorHandler.java:156)
at org.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java:599)
at org.openqa.selenium.remote.RemoteWebElement.execute(RemoteWebElement.java:268)
at org.openqa.selenium.remote.RemoteWebElement.click(RemoteWebElement.java:79)
at shivaniios.MyFirstClass.main(MyFirstClass.java:49)'

1 个答案:

答案 0 :(得分:1)

WebDriver wd = new RemoteWebDriver(new URL("http://127.0.0.1:4723/wd/hub"),capabilities);

如果您使用的是appium,我建议您使用

AppiumDriver wd = new AppiumDriver(new URL("http://127.0.0.1:4723/wd/hub"), capabilities);

试试这种方式。如果问题仍然存在,我将等待您的联系