【问题标题】:Not able to Instantiate the android driver, If the Appium server is started from the code无法实例化android驱动,如果Appium服务器是从代码启动的
【发布时间】:2015-10-30 18:56:31
【问题描述】:

我要启动服务器的步骤是: 使用以下命令创建了一个 bat 文件: "C:/Program Files (x86)/Appium/node.exe" "C:/Program Files (x86)/Appium/node_modules/appium/bin/Appium.js" --address 127.0.0.1 --port 4723 --平台名称 Android --platform-version 18 --automation-name Appium --no-reset --local-timezone --log E:\Android\appium.log""

编写启动服务器的代码:

public class Testing {
    AppiumDriver driver;

    @BeforeTest

    public void AppiumServerStart() throws MalformedURLException, InterruptedException {

        String s = null;

        String Filepath = "C:\\appiumserver.bat";

        // String Command = \""C:/Program Files (x86)/Appium/node.exe"
        // "C:/Program Files (x86)/Appium/node_modules/appium/bin/Appium.js"
        // --address 127.0.0.1 --port 4723 --platform-name Android
        // --platform-version 18 --automation-name Appium --no-reset
        // --local-timezone"\"

        System.out.println(Filepath);

        try {
            Process p = Runtime.getRuntime().exec(Filepath);


        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }

        System.out.println(Filepath);
        System.out.println("Server Started");

        Thread.sleep(6000);

}

添加 Desire Capabilities 并创建 android 驱动程序实例的代码:

public class DemoCalc extends Testing {

    AppiumDriver driver;

    @Test

    public void Setup() throws MalformedURLException, InterruptedException {

        File file = new File(System.getProperty("user.dir"));

        DesiredCapabilities cap = new DesiredCapabilities();
        cap.setCapability(MobileCapabilityType.VERSION, "4.4.4");
        cap.setCapability(MobileCapabilityType.PLATFORM_NAME, "Android");
        cap.setCapability(MobileCapabilityType.DEVICE_NAME, "169.254.140.101:5555");
        cap.setCapability(MobileCapabilityType.APP_PACKAGE, "com.android.calculator2");
        cap.setCapability(MobileCapabilityType.APP_ACTIVITY, "com.android.calculator2.Calculator");
        driver = new AndroidDriver(new URL("http://localhost:4723/wd/hub"), cap);

但是,Android 驱动程序实例会引发以下异常:

org.openqa.selenium.remote.UnreachableBrowserException: Could not start a new session. Possible causes are invalid address of the remote server or browser start-up failure.
Build info: version: '2.46.0', revision: '87c69e2', time: '2015-06-04 16:17:10'

如果我手动,通过单击 appium.exe 启动服务器,则不会出现问题。但是当服务器从 java 代码问题启动时出现。

运行bat文件启动appium服务器后,我在任务管理器中看到节点进程,显示appium服务器已经连接。

请帮忙

【问题讨论】:

  • 当由 bat 文件启动时,在浏览器“localhost:4723/wd/hub”上试试这个 url(分别替换 localhost 和 port。如果你得到的资源不是有效的,那么这意味着 appium 节点服务器正在运行。
  • 如果我添加本地主机 url,它表明 appium 服务器正在工作。此外,如果我首先运行 java 代码来启动服务器,然后手动运行 selenium 代码,它工作正常。但是当我将这两件事结合在一起并尝试运​​行时,它会失败,并出现描述中给出的异常。

标签: android webdriver appium


【解决方案1】:

在执行测试之前尝试将 Appium 服务器作为单独的线程运行。

【讨论】:

  • 我正在运行一个不同的类来启动服务器,然后我试图执行一个具有 selenium 脚本的类。然后它也不会工作
  • 当然它不会工作,因为服务器启动器执行启动命令,然后完成启动命令并开始执行测试。但是随后服务器不再存在。您需要并行运行服务器测试执行。所以只需将服务器实现为并行任务 (example)。
  • 我在任务管理器中看到了节点进程,这表明appium服务器已连接..Appium服务器保持活动状态,它不会停止。我
  • 我看到服务器仍在运行,即使在服务器启动类完成执行后也在 cmd 中。这意味着,服务器在测试运行时运行。
猜你喜欢
  • 2023-02-12
  • 1970-01-01
  • 2019-04-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-08-06
  • 1970-01-01
相关资源
最近更新 更多