设置autoWebview:'true'在protractor config.js文件导致机器注销,ubuntu 16.04

Dil*_*mar 6 android appium protractor

设置autoWebview:'true'在protractor配置文件导致系统注销,ubuntu 16.4

这是我的配置文件:

exports.config = {
    seleniumAddress: 'http://localhost:4723/wd/hub',

    specs: ['demo.js'],

    capabilities: {
        platformName : 'android',
        platformVersion : '4.4.2',
        deviceName: 'PNV4PN4LUORWSCRO',
        directConnect: true,
        browserName: "android",
        autoWebview: ' true',

        app: '/path/abc.apk',
        appPackage: 'xyz',
        appActivity: '.MainActivity',
           newCommandTimeout: 140,
        autoWebviewTimeout: 10000,
        fulReset: true
    },
    baseUrl: 'http://10.0.2.2:8000',
    allScriptsTimeout: 22000,

    onPrepare: function () {
        var wd = require('wd'),
            protractor = require('protractor'),
            wdBridge = require('wd-bridge')(protractor, wd);
        wdBridge.initFromProtractor(exports.config);
    }
};
Run Code Online (Sandbox Code Playgroud)

如果我没有设置autoWebview:'true',那么我遇到问题:

[21:38:48] I/hosted - Using the selenium server at http://localhost:4723     /wd/hub  
[21:38:48] I/launcher - Running 1 instances of WebDriver
[21:39:04] E/runner - Unable to start a WebDriver session.  
         E/launcher - Error: WebDriverError: Not yet implemented. Please help us: http://appium.io/get-involved.html  
        at WebDriverError (/home/dilip/local/lib/node_modules/protractor/node_modules/selenium-webdriver/error.js:27:5)
        at Object.checkLegacyResponse (/home/dilip/local/lib/node_modules/protractor/node_modules/selenium-webdriver/error.js:580:13)
        at /home/dilip/local/lib/node_modules/protractor/node_modules/selenium-webdriver/lib/webdriver.js:360:15
        at Promise.invokeCallback_ (/home/dilip/local/lib/node_modules/protractor/node_modules/selenium-webdriver/lib/promise.js:1329:14)
        at TaskQueue.execute_ (/home/dilip/local/lib/node_modules/protractor/node_modules/selenium-webdriver/lib/promise.js:2790:14)
        at TaskQueue.executeNext_ (/home/dilip/local/lib/node_modules/protractor/node_modules/selenium-webdriver/lib/promise.js:2773:21)
        at asyncRun (/home/dilip/local/lib/node_modules/protractor/node_modules/selenium-webdriver/lib/promise.js:2652:27)
        at /home/dilip/local/lib/node_modules/protractor/node_modules/selenium-webdriver/lib/promise.js:639:7
        at process._tickCallback (internal/process/next_tick.js:103:7)
    [15:01:09] E/launcher - Process exited with error code 100
Run Code Online (Sandbox Code Playgroud)

以下是spec.js文件内容:

describe('Protractor Demo App', function() { var firstNumber =element(by.model('xyz:id/data.email')); var secondNumber = element(by.model('xyz:id/data.password')); it('Open login page', function() { firstNumber.sendKeys("dilip"); secondNumber.sendKeys(7668); 
});
Run Code Online (Sandbox Code Playgroud)

拜托,有人帮帮我.

Ant*_*nov 0

我有同样的问题。如appium#6526中所述,如果使用新版本的 procps 和旧版本的 appium-chromedriver,则会出现问题。不幸的是,如果我安装 appium,那么我会得到旧版本的 appium-chromedriver@2.8.3,因为 appium 的npm-shrinkwrap.json (在master中被删除)。

我不是 npm 专家,但令我满意的解决方案是:

  1. 将appium添加到package.json中的devDependency和脚本中

    "devDependencies": {
      "appium": "^1.5.2",
      ...
    },
    "scripts": {
      "appium": "appium"
    }
    
    Run Code Online (Sandbox Code Playgroud)

    这允许您运行 app-local 版本的 appium

    npm run appium
    
    Run Code Online (Sandbox Code Playgroud)

    而不是全局appium安装。

  2. 添加 npm-shrinkwrap.json (或生成并npm shrinkwrap --dev编辑)文件以覆盖依赖项:

    {
      "name": "my app",
      "version": "1.0.0",
      "dependencies": {
        "appium": {
          "version": "1.5.2",
          "from": "appium@>=1.5.2 <2.0.0",
          "resolved": "https://registry.npmjs.org/appium/-/appium-1.5.2.tgz",
          "dependencies": {
            "appium-android-driver": {
              "version": "1.10.7",
              "from": "appium-android-driver@1.10.7",
              "resolved": "https://registry.npmjs.org/appium-android-driver/-/appium-android-driver-1.10.7.tgz"
            }
          }
        }
      }
    }
    
    Run Code Online (Sandbox Code Playgroud)
  3. 然后安装并运行 appium

    npm install
    npm run appium
    
    Run Code Online (Sandbox Code Playgroud)

如果我没有遗漏任何东西,那么它应该可以解决问题。也许在下一个 appium 版本中您不再需要 npm-shrinkwrap.json 。

编辑:示例:ionic-appium-Protractor-example