如何解决[MJSONWP]遇到内部在使用Appium和iOS进行自动化时20次尝试错误后无法连接到有效的应用程序?

问题描述 投票:0回答:1

我正在尝试使用Appium 1.7.1和Java,iOS simulator.Xcode 8.3自动化混合应用程序

到目前为止,我能够启动应用程序并删除弹出的通知,但在尝试获取上下文时,Appium中会抛出错误:

[MJSONWP]遇到内部错误运行命令:错误:20次尝试后无法连接到有效的应用程序。在RemoteDebugger.selectApp $(/ Applications / Appium)的Object.wrappedLogger.errorAndThrow(/Applications/Appium.app/Contents/Resources/app/node_modules/appium/node_modules/appium-support/lib/logging.js:63:13) .app / Contents / Resources / app / node_modules / appium / node_modules / appium-remote-debugger / lib / remote-debugger.js:259:6)at tryCatch(/Applications/Appium.app/Contents/Resources/app/node_modules /appium/node_modules/babel-runtime/regenerator/runtime.js:67:40)在GeneratorFunctionPrototype.invoke [as _invoke](/Applications/Appium.app/Contents/Resources/app/node_modules/appium/node_modules/babel-runtime /regenerator/runtime.js:315:22)在GeneratorFunctionPrototype.prototype。(匿名函数)[as throw](/Applications/Appium.app/Contents/Resources/app/node_modules/appium/node_modules/babel-runtime/regenerator/ runtime.js:100:21)在GeneratorFunctionPrototype.invoke(/Applications/Appium.app/Contents/Resources/app/node_modules/appium/node_modules/babel-runtime/regenerator/runtime.js:136:37)[ HTTP] < - GET / wd / hub / session / c59dd263-05e2-439a-9f1e-c37389e38ada / contexts 500 136 ms - 219

在IDE上:

org.openqa.selenium.WebDriverException:处理命令时发生未知的服务器端错误。原始错误:20次尝试后无法连接到有效的应用程序。 (警告:服务器未提供任何堆栈跟踪信息)命令持续时间或超时:0毫秒

码:

package XYZ;

import io.appium.java_client.AppiumDriver;
import io.appium.java_client.MobileElement;
import io.appium.java_client.ios.IOSDriver;
import io.appium.java_client.remote.MobileCapabilityType;
import jdk.internal.instrumentation.Logger;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
import org.openqa.selenium.By;
import org.openqa.selenium.remote.DesiredCapabilities;
import java.net.URL;
import java.util.Set;


/**
 * Created by on 28/11/2017.
 */
public class AppSimulatorLaunch {




    public AppiumDriver<MobileElement> driver;

    @Before
    public void setup() throws Exception {
        DesiredCapabilities capabilities = new DesiredCapabilities();
        capabilities.setCapability(MobileCapabilityType.DEVICE_NAME, "iPad Air 2");
        capabilities.setCapability(MobileCapabilityType.PLATFORM_NAME, "iOS");
        capabilities.setCapability(MobileCapabilityType.PLATFORM_VERSION, "10.3");
        capabilities.setCapability("nativeWebTap", true);
        capabilities.setCapability("automationName", "XCUITest");
        capabilities.setCapability("xcodeOrgId", "xyz");
        capabilities.setCapability("xcodeSigningId", "iPhone Developer");
        capabilities.setCapability("newCommandTimeout", "120");
        capabilities.setCapability(MobileCapabilityType.APP, "/Users/user/Documents/xyz.app");

        driver = new IOSDriver<>(new URL("http://127.0.0.1:4723/wd/hub"), capabilities);

        driver.switchTo().alert().accept();


    }

    @After
    public void tearDown() {

      // driver.quit();
    }


    @Test
    public void testCheckWebsite() throws InterruptedException {
        Thread.sleep(5000);
        Set<String> contextNames = driver.getContextHandles();
        System.out.println("about to print the context list");
        System.out.println(contextNames);

         driver.context((String) contextNames.toArray()[1]);

        driver.findElement(By.xpath("//*[@id=\"USER\"]")).sendKeys("t334658");
        driver.findElement(By.xpath("//*[@id=\"PASSWORD\"]")).sendKeys("geenidee01");
        driver.findElement(By.xpath("//*[@id=\"bouton1\"]")).click();

    }

}

不知道怎么解决这个问题?我已经尝试添加一个在https://github.com/appium/appium/issues/6825中提到的thread.sleep,但它似乎也没有用。

AutoTig

java ios selenium-webdriver ios-simulator appium-ios
1个回答
0
投票

经过一些调查后,问题显然是使用Xcode 8.3和Appium 1.7.1运行脚本。使用Xcode 9它似乎工作。

© www.soinside.com 2019 - 2024. All rights reserved.