首页 文章

无头镀铬中的量角器不执行browser.actions()

提问于
浏览
0

我的protractor.conf.js(相关部分)

capabilities: {
    'browserName': 'chrome',
    'chromeOptions': {
      'args': ['headless', 'disable-gpu']
    }
  }

如果我在正常模式下运行量角器,所有测试都通过 . 以及如果我用map.click()替换这段代码 .

browser.actions()
  .mouseDown()
  .mouseMove(map, {x: 500, y: 150})
  .click()
  .mouseDown()
  .perform();

编辑:之前我没有添加错误,因为我认为它们在我的情况下没用 . 但在这里他们是因为有人认为他们是相关的 .

失败:

1)量角器演示应用程序场所排序应在距离 Map 中心不同距离处创建2个位置消息:预期0为2.堆栈:错误:在Object.it(/ home / piliponful / projects / mocha-test / spec . js:138:38)at /home/piliponful/.nvm/versions/node/v7.10.0/lib/node_modules/protractor/node_modules/jasminewd2/index.js:112:25 at new ManagedPromise(/ home / piliponful / . 在ControlFlow.promise(/home/piliponful/.nvm/versions/node/v7)的nvm / versions / node / v7.10.0 / lib / node_modules / protractor / node_modules / selenium-webdriver / lib / promise.js:1067:7) .10.0 / lib / node_modules / protractor / node_modules / selenium-webdriver / lib / promise.js:2396:12)在schedulerExecute(/home/piliponful/.nvm/versions/node/v7.10.0/lib/node_modules/protractor/) node_modules / jasminewd2 / index.js:95:18)在TaskQueue.execute_(/home/piliponful/.nvm/versions/node/v7.10.0/lib/node_modules/protractor/node_modules/selenium-webdriver/lib/promise.js :2970:14)在TaskQueue.executeNext_(/home/piliponful/.nvm/versions/node/v7.10 . 0 / lib / node_modules / protractor / node_modules / selenium-webdriver / lib / promise.js:2953:27)atyncRun(/home/piliponful/.nvm/versions/node/v7.10.0/lib/node/modules/protractor/node_modules /selenium-webdriver/lib/promise.js:2860:25)/home/piliponful/.nvm/versions/node/v7.10.0/lib/node_modules/protractor/node_modules/selenium-webdriver/lib/promise.js: 676:7 at process.tickCallback(internal / process / next_tick.js:109:7)2)量角器演示应用程序场所排序应排序位置消息:预期0为2.堆栈:错误:Object.it期望失败(/ home / piliponful / projects / mocha-test / spec.js:148:38)athome/piliponful/.nvm/versions/node/v7.10.0/lib/node_modules/protractor/node_modules/jasminewd2/index.js:112 :在ControlFlow.promise上新的ManagedPromise(/home/piliponful/.nvm/versions/node/v7.10.0/lib/node_modules/protractor/node_modules/selenium-webdriver/lib/promise.js:1067:7)25(/家用/ piliponful / .nvm /版本/节点/ V7.10.0 / lib中/ node_modules /量角器/ node_modules /硒webdriver的/ lib目录/ promise.js:2396:12)在taskQueue.execute_上的schedulerExecute(/home/piliponful/.nvm/versions/node/v7.10.0/lib/node_modules/protractor/node_modules/jasminewd2/index.js:95:18) /home/piliponful/.nvm/versions/node/v7.10.0/lib/node_modules/protractor/node_modules/selenium-webdriver/lib/promise.js:2970:14)在TaskQueue.executeNext(/home/piliponful/.nvm) /versions/node/v7.10.0/lib/node_modules/protractor/node_modules/selenium-webdriver/lib/promise.js:2953:27)asyncRun(/home/piliponful/.nvm/versions/node/v7.10.0/ lib / node_modules / protractor / node_modules / selenium-webdriver / lib / promise.js:2860:25)athome/piliponful/.nvm/versions/node/v7.10.0/lib/node_modules/protractor/node_modules/selenium-webdriver /lib/promise.js:676:7 at process.tickCallback(internal / process / next_tick.js:109:7)消息:失败:索引越界 . 尝试访问index:0处的元素,但是只有0个元素匹配locator by.binding(“place.title”)Stack:NoSuchElementError:索引超出范围 . 尝试访问index:0处的元素,但是在selenium_webdriver_1.promise.all.then(/home/piliponful/.nvm/versions/node/v7)中只有0个元素匹配定位符by.binding(“place.title”) . .10.0 / lib / node_modules / protractor / lib / element.ts:287:17)at ManagedPromise.invokeCallback(/home/piliponful/.nvm/versions/node/v7.10.0/lib/node_modules/protractor/node_modules/selenium- webdriver / lib / promise.js:1366:14)at TaskQueue.execute_(/home/piliponful/.nvm/versions/node/v7.10.0/lib/node_modules/protractor/node_modules/selenium-webdriver/lib/promise.js :2970:14)在asyncRun的TaskQueue.executeNext_(/home/piliponful/.nvm/versions/node/v7.10.0/lib/node_modules/protractor/node_modules/selenium-webdriver/lib/promise.js:2953:27) (/home/piliponful/.nvm/versions/node/v7.10.0/lib/node_modules/protractor/node_modules/selenium-webdriver/lib/promise.js:2813:27)/home/piliponful/.nvm/versions/ node / v7.10.0 / lib / node_modules / protractor / node_modules / selenium-webdriver / lib / promise.js:676:7 at process._ tickCallback(internal / process / next_tick.js:109:7)ElementArrayFinder.applyAction_出错(/home/piliponful/.nvm/versions/node/v7.10.0/lib/node_modules/protractor/lib/element.ts:482:23)在ElementArrayFinder . (匿名函数).args [as getText](/ home / soliponful / .nvm / versions / node / v7.10.0 / lib / node_modules / protractor / lib / element.ts:96:21)在ElementFinder . (匿名函数).args [as getText](/home/piliponful/.nvm /versions/node/v7.10.0/lib/node_modules/protractor/lib/element.ts:873:14)at placeListText.then.places(/home/piliponful/projects/mocha-test/spec.js:150:38 )在TaskQueue.execute_(/)的ManagedPromise.invokeCallback_(/home/piliponful/.nvm/versions/node/v7.10.0/lib/node_modules/protractor/node_modules/selenium-webdriver/lib/promise.js:1366:14) home / piliponful / .nvm / versions / node / v7.10.0 / lib / node_modules / protractor / node_modules / selenium-webdriver / lib / promise.js:2970:14)at TaskQueue.executeNext_(/home/piliponful/.nvm/版本/ node / v7.10.0 / lib / node_modules / protractor / node_modules / selenium-webdriver / lib / promise.js:2953:27)atyncRun(/home/piliponful/.nvm/versions/ node / v7.10.0 / lib / node_modules / protractor / node_modules / selenium-webdriver / lib / promise.js:2813:27)athome/piliponful/.nvm/versions/node/v7.10.0/lib/node_modules/protractor /node_modules/selenium-webdriver/lib/promise.js:676:7 at process._tickCallback(internal / process / next_tick.js:109:7)来自:任务:在控制流程中运行它(“应排序位置”)宾语 . (/home/piliponful/.nvm/versions/node/v7.10.0/lib/node_modules/protractor/node_modules/jasminewd2/index.js:94:19)在tryOnImmediate(timers)的runCallback(timers.js:672:20) .js:645:5)at processImmediate [as _immediateCallback](timers.js:617:5)来自异步测试:Suite.describe错误(/home/piliponful/projects/mocha-test/spec.js:140:5 )在Object的Suite.describe(/home/piliponful/projects/mocha-test/spec.js:87:3) . (/home/piliponful/projects/mocha-test/spec.js:1:1)在Module._compile(module.js:571:32)处于Object.Module._extensions..js(module.js:580:10) )在Module.load(module.js:488:32)的try.moduleLoad(module.js:447:12)处于Module.require的Function.Module._load(module.js:439:3)处(module.js:498) :17)13个规格,3个失败

3 回答

  • 0

    我没有找到解决方案让protractor browser.actions()在chrome中使用无头模式 . 但是我使用了Xvfb docker图像(webnicer / protractor-headless),它都按预期工作 .

  • 0

    我可以看到您的选项语法与Protractor specifications不同 . 此外,无头需要您预先指定窗口大小 . 请尝试这个,看看它是否有帮助 .

    capabilities: {
        'browserName': 'chrome',
        'chromeOptions': {
          'args': ['--headless', '--disable-gpu', '--window-size=800,600']
        }
      }
    
  • 0

    是的,您无法在无头镀铬中使用 mouseMove() ,因为并非所有浏览器操作都能按预期工作 . 例如, browser.actions().sendKeys(Key.DELETE).perform()

    而不是mouseMove(),只需使用:

    browser.executeScript("arguments[0].scrollIntoView();", map)
    
    map.click()
    

相关问题