使用Appium和Ruby我得到:错误:无法连接到Appium。服务器正在运行吗? (RuntimeError)

时间:2016-07-23 06:18:20

标签: ruby appium-ios

我运行了appium.dmg客户端:

服务器地址:127.0.0.1
港口:4723

但是我在尝试运行Ruby Appium脚本后收到以下错误

在start_driver中

/Users/tboland/.rbenv/shims/bundle exec /Users/tboland/.rbenv/versions/2.3.1/bin/ruby -e $stdout.sync=true;$stderr.sync=true;load($0=ARGV.shift) /Users/tboland/RubymineProjects/AppiumProject/FirstScript/launch_safari_on_ios_device.rb /Users/tboland/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/appium_lib-8.0.2/lib/appium_lib/driver.rb:492:in救援':错误:无法连接到Appium。服务器正在运行吗? (RuntimeError)     来自/Users/tboland/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/appium_lib-8.0.2/lib/appium_lib/driver.rb:477:在``start_driver'     来自/Users/tboland/RubymineProjects/AppiumProject/FirstScript/launch_safari_on_ios_device.rb:24:in <top (required)>' from -e:1:in load'     来自-e:1:在''

处理完成,退出代码为1`

这是Ruby代码:

的Gemfile:

`source'http://rubygems.org'

gem'appium_lib'

gem'appium_console'

gem'selenium-webdriver'`

launch_safari_on_ios_device.rb

`require'rubygems' 需要'appium_lib' 要求'selenium-webdriver'

为驱动程序定义所需的功能 desired_capabilities = {

caps: {

    platformName: 'iOS',
    platformVersion: '9.3',
    browserName: 'safari',
    #iPod Touch
    deviceName: 'aaaa',
    udid:'#####'
}

}

创建appium驱动程序 @driver = Appium :: Driver.new(desired_capabilities).start_driver 睡觉5 @ driver.get“http://androidsdet.blogspot.com”`

2 个答案:

答案 0 :(得分:0)

您需要启动并运行Appium服务器,等待测试进行连接。这可以在您自己的本地主机中,也可以在某些远程服务器或云服务上。

除非您提供SauceLabs用户详细信息,否则Appium ruby​​客户端会将服务器设置为默认使用您的localhost。对于其他用例,您需要为server_url变量提供一个值以定位特定服务器或服务。

对于Appium webdriver,需要在appium_lib中提供诸如server_url之类的值。请参阅Appium的示例代码页中的simple_test.rb示例:https://github.com/appium/sample-code/blob/master/sample-code/examples/ruby/simple_test.rb#L36

使用Selenium Webdriver,webdriver的init可能如下所示:

Map<String, String> param = new HashMap<String, String>();
                    param.put("access_code", access_code);
                    param.put("auth_token", auth_token);
                    param.put("data", objMainList.toString());

                    try {
                        HttpUtility.sendPostRequest(Config.Submit_Answer, param);
                        String response = HttpUtility.readMultipleLinesRespone();
                        json = new JSONObject(response);
                        HttpUtility.disconnect();

} catch (Exception e) {

                        e.printStackTrace();

                    }

要了解如何将自己的Appium服务器设置为本地主机,请参阅Appium的自述文件https://github.com/appium/appium

答案 1 :(得分:0)

因为您已经运行appium并且正在尝试使用相同的端口启动另一个会话。 在终端上使用命令killall node,然后再次运行Appium