• #56楼 @carl 支持的。appium我没有试过,你可以跟 @Tank007 他讨论一下,他在研究呢。

  • #3楼 @xiaoli
    你是指判断某一特殊元素,还是希望有一个通用的解决办法?

  • #54楼 @carl 都支持

  • #51楼 @Tank007 所以他默认就是8100,同时起2个还是8100?

  • #48楼 @Tank007 我觉得应该是使用不同的端口。appium在启动的时候只能指定appium server的端口么,不能知道wda的端口?

  • #42楼 @Tank007
    你这个是并行的log吧,如果是,我感觉就是这个问题。

  • #42楼 @Tank007 我刚刚运行了一下,发现用的是2个不同的端口。

    >> xctest-client.js:56:14 [master] pid:10556 project path: /usr/local/lib/node_modules/macaca-ios/node_modules/webdriveragent/WebDriverAgent/WebDriverAgent.xcodeproj
    >> xctest-client.js:56:14 [master] pid:10555 project path: /usr/local/lib/node_modules/macaca-ios/node_modules/webdriveragent/WebDriverAgent/WebDriverAgent.xcodeproj
    >> macaca-ios.js:147:10 [master] pid:10556 {
        "bundleId": "com.btcc.mobiEntStaging",
        "platformVersion": "9.3.5",
        "platformName": "iOS"
    }
    >> macaca-ios.js:147:10 [master] pid:10555 {
        "bundleId": "com.btcc.mobiEntStaging",
        "platformVersion": "10.0.1",
        "platformName": "iOS"
    }
    >> macaca-ios.js:151:12 [master] pid:10556 Trying to start wda server...
    >> macaca-ios.js:151:12 [master] pid:10555 Trying to start wda server...
    (node:10556) DeprecationWarning: Calling an asynchronous function without callback is deprecated.
    (node:10555) DeprecationWarning: Calling an asynchronous function without callback is deprecated.
    (node:10555) DeprecationWarning: Calling an asynchronous function without callback is deprecated.
    (node:10556) DeprecationWarning: Calling an asynchronous function without callback is deprecated.
    BundleId com.apple.test.WebDriverAgentRunner-Runner does not exist.
    >> xctest-client start with port: 8900
    >> xctest-client.js:233:14 [master] pid:10556 xcode version: 8.2
    >> WebDriverAgent version: 1.0.38
    >> xctest-client start with port: 8901
    >> xctest-client.js:233:14 [master] pid:10555 xcode version: 8.2
    >> WebDriverAgent version: 1.0.38
    
  • 没有,我只要设置macaca server运行的端口就行了。

  • #38楼 @Tank007 那你可以修改wda的端口么? 2个分别用不同的端口呢。

  • #36楼 @Tank007 这边啊
    [debug] [JSONWP Proxy] Proxying [POST /session] to [POST http://localhost:8100/session] with b 为啥是都是8100 端口,你这里不是设置的端口号是4724么?

  • #32楼 @Tank007
    你好,我可以看看你的devices = appium_server.get_device()这个的devices的具体代码么?

  • 捕获一下异常,例如:
    try:
    element.cick()
    catch:
    拖动滚动条。
    点击。

  • #29楼 @Tank007
    print 'All subprocesses done.'
    for res in result:
    print res.get

    这个也没有打印出来么?
    还有啊,是print res.get()

  • #27楼 @Tank007 你这样打印当然就是一个进程了,你这里打印出来的都是主进程的pid。去self.run里面打印。

  • #25楼 @Tank007

    driver = WebDriver(device, server_url)
    driver.init()
    

    这个方法不是我实现的,是macaca自己封装好,用来初始化driver的。

    pool.apply_async(self.run, (self.devices[i], pool_list[i])) 并行执行不了,一运行就结束了

    这个是因为在在执行self.run这个方法的过程中报错了,所以提前结束。但是并没有把报错信息给打印出来。你可以添加以下代码,就可以看见报错信息了。

    result = []
    result.append(pool.apply_async(self.run_server, args=(self.devices[i], port_list[i]))
    for res in result:
            print(res.get())
    

    至于最后一个 [ ERROR ] Message: Session does not exist:
    你确定所有服务都起来之后才运行用例的么?

  • #23楼 @zyyuyu123

    • apply_async 运行时根本没有调用 run_server方法 没有报错么?如果是直接结束了 ,可以定义一个result,将报错信息打印出来
    result = []
    result.append(pool.apply_async(self.run_server, args=(self.devices[i], port_list[i]))
    for res in result:
            print(res.get())
    
    • macaca server -p %s --verbose 是否需要守护进程去调用,服务会一直保持启动,apply_async不会回到主进程 会一直保持启动。会回到主进程
  • 问前能不能先搜一下?

  • 我的 2016 年终总结 at 2017年1月04日

    66666

  • 是的,这可以的。但是我的电脑是mac。

  • #17楼 @harsayer 不好意思啊,你这里的 “测试执行服务环境”指的是什么?我不太明白哎。。我是在一台电脑上同时根据不同的端口开启了多个macaca server。