Selenium webdriver 量角器随机动作或偶尔不启动

Selenium webdriver 量角器随机动作或偶尔不启动,selenium-webdriver,protractor,Selenium Webdriver,Protractor,我的任务是编写不同的自动化测试和任务套件,但在过去的几天里,Gradurator的工作方式非常奇怪。。。我只是不记得上次我的套件正常运行时有什么改变 当前正在使用最新的驱动程序: % ./node_modules/webdriver-manager/bin/webdriver-manager status webdriver-manager: using local installed version 12.1.0 [09:14:25] I/status - selenium standalon

我的任务是编写不同的自动化测试和任务套件,但在过去的几天里,Gradurator的工作方式非常奇怪。。。我只是不记得上次我的套件正常运行时有什么改变

当前正在使用最新的驱动程序:

% ./node_modules/webdriver-manager/bin/webdriver-manager status
webdriver-manager: using local installed version 12.1.0
[09:14:25] I/status - selenium standalone version available: 3.13.0 [last]
[09:14:25] I/status - chromedriver version available: 2.40 [last]
[09:14:25] I/status - geckodriver version available: v0.21.0 [last]
[09:14:25] I/status - android-sdk is not present
[09:14:25] I/status - appium is not present
% ./node_modules/protractor/bin/protractor --version
Version 5.3.2
% ./node_modules/webdriver-manager/bin/webdriver-manager start
webdriver-manager: using local installed version 12.1.0
[09:30:49] I/start - java -Dwebdriver.chrome.driver=/Users/cyril/Projects/parkopoly_e2e/node_modules/webdriver-manager/selenium/chromedriver_2.40 -Dwebdriver.gecko.driver=/Users/cyril/Projects/parkopoly_e2e/node_modules/webdriver-manager/selenium/geckodriver-v0.21.0 -jar /Users/cyril/Projects/parkopoly_e2e/node_modules/webdriver-manager/selenium/selenium-server-standalone-3.13.0.jar -port 4444
[09:30:49] I/start - seleniumProcess.pid: 1791
09:30:49.534 INFO [GridLauncherV3.launch] - Selenium build info: version: '3.13.0', revision: '2f0d292'
09:30:49.535 INFO [GridLauncherV3$1.launch] - Launching a standalone Selenium Server on port 4444
2018-07-16 09:30:49.613:INFO::main: Logging initialized @282ms to org.seleniumhq.jetty9.util.log.StdErrLog
09:30:49.752 INFO [SeleniumServer.boot] - Selenium Server is up and running on port 4444
09:30:55.414 INFO [ActiveSessionFactory.apply] - Capabilities are: {
  "browserName": "chrome",
  "chromeOptions": {
    "args": [
      "--disable-extensions",
      "--show-fps-counter=true",
      "--disable-infobars",
      "--incognito",
      "--disable-gpu",
      "--headless"
    ]
  },
  "count": 1
}
09:30:55.415 INFO [ActiveSessionFactory.lambda$apply$11] - Matched factory org.openqa.selenium.remote.server.ServicedSession$Factory (provider: org.openqa.selenium.chrome.ChromeDriverService)
Starting ChromeDriver 2.40.565386 (45a059dc425e08165f9a10324bd1380cc13ca363) on port 24866
Only local connections are allowed.
09:30:55.951 INFO [ProtocolHandshake.createSession] - Detected dialect: OSS
09:30:56.171 INFO [RemoteSession$Factory.lambda$performHandshake$0] - Started new session 9ea12201cba04ac9e41639501f0c02e1 (org.openqa.selenium.chrome.ChromeDriverService)
09:30:56.925 INFO [ActiveSessions$1.onStop] - Removing session 9ea12201cba04ac9e41639501f0c02e1 (org.openqa.selenium.chrome.ChromeDriverService)
最新的量角器版本是什么

% ./node_modules/webdriver-manager/bin/webdriver-manager status
webdriver-manager: using local installed version 12.1.0
[09:14:25] I/status - selenium standalone version available: 3.13.0 [last]
[09:14:25] I/status - chromedriver version available: 2.40 [last]
[09:14:25] I/status - geckodriver version available: v0.21.0 [last]
[09:14:25] I/status - android-sdk is not present
[09:14:25] I/status - appium is not present
% ./node_modules/protractor/bin/protractor --version
Version 5.3.2
% ./node_modules/webdriver-manager/bin/webdriver-manager start
webdriver-manager: using local installed version 12.1.0
[09:30:49] I/start - java -Dwebdriver.chrome.driver=/Users/cyril/Projects/parkopoly_e2e/node_modules/webdriver-manager/selenium/chromedriver_2.40 -Dwebdriver.gecko.driver=/Users/cyril/Projects/parkopoly_e2e/node_modules/webdriver-manager/selenium/geckodriver-v0.21.0 -jar /Users/cyril/Projects/parkopoly_e2e/node_modules/webdriver-manager/selenium/selenium-server-standalone-3.13.0.jar -port 4444
[09:30:49] I/start - seleniumProcess.pid: 1791
09:30:49.534 INFO [GridLauncherV3.launch] - Selenium build info: version: '3.13.0', revision: '2f0d292'
09:30:49.535 INFO [GridLauncherV3$1.launch] - Launching a standalone Selenium Server on port 4444
2018-07-16 09:30:49.613:INFO::main: Logging initialized @282ms to org.seleniumhq.jetty9.util.log.StdErrLog
09:30:49.752 INFO [SeleniumServer.boot] - Selenium Server is up and running on port 4444
09:30:55.414 INFO [ActiveSessionFactory.apply] - Capabilities are: {
  "browserName": "chrome",
  "chromeOptions": {
    "args": [
      "--disable-extensions",
      "--show-fps-counter=true",
      "--disable-infobars",
      "--incognito",
      "--disable-gpu",
      "--headless"
    ]
  },
  "count": 1
}
09:30:55.415 INFO [ActiveSessionFactory.lambda$apply$11] - Matched factory org.openqa.selenium.remote.server.ServicedSession$Factory (provider: org.openqa.selenium.chrome.ChromeDriverService)
Starting ChromeDriver 2.40.565386 (45a059dc425e08165f9a10324bd1380cc13ca363) on port 24866
Only local connections are allowed.
09:30:55.951 INFO [ProtocolHandshake.createSession] - Detected dialect: OSS
09:30:56.171 INFO [RemoteSession$Factory.lambda$performHandshake$0] - Started new session 9ea12201cba04ac9e41639501f0c02e1 (org.openqa.selenium.chrome.ChromeDriverService)
09:30:56.925 INFO [ActiveSessions$1.onStop] - Removing session 9ea12201cba04ac9e41639501f0c02e1 (org.openqa.selenium.chrome.ChromeDriverService)
这就是当量角器不运行时,量角器80%的输出情况:

% ./node_modules/protractor/bin/protractor ./conf.js --suite scenarios --params.login.usr=$USR_E2E --params.login.pwd=$PWD_E2E --params.env=test
(node:1709) [DEP0022] DeprecationWarning: os.tmpDir() is deprecated. Use os.tmpdir() instead.
[09:03:07] W/driverProviders - Using driver provider hosted, but also found extra driver provider parameter(s): seleniumServerJar
[09:03:07] I/launcher - Running 1 instances of WebDriver
[09:03:07] I/hosted - Using the selenium server at http://localhost:4444/wd/hub
[09:03:08] E/launcher - Error: NoSuchElementError: no such element: Unable to locate element: {"method":"css selector","selector":"[type="email"]"}
  (Session info: headless chrome=67.0.3396.99)
  (Driver info: chromedriver=2.40.565386 (45a059dc425e08165f9a10324bd1380cc13ca363),platform=Mac OS X 10.14.0 x86_64)
    at <anonymous>
    at process._tickCallback (internal/process/next_tick.js:188:7)
[09:03:08] E/launcher - Process exited with error code 100
下面是我当前使用的conf.js文件:

const SpecReporter = require('jasmine-spec-reporter').SpecReporter;

exports.config = {
  SELENIUM_PROMISE_MANAGER: false,
  rootElement: 'html',
  seleniumServerJar: './bin/selenium-server-standalone-3.12.0.jar',
  seleniumPort: '4444',
  seleniumAddress: 'http://localhost:4444/wd/hub',
  framework: 'jasmine2',
  directConnect: false,
  specs: ['./e2e/**/*.spec.js'],
  suites: {
    cft: './e2e/cft/**/*.spec.js',
    scenarios: './e2e/scenarios/**/*.scenario.js'
  },
  jasmineNodeOpts: {
    isVerbose: true,
    defaultTimeoutInterval: 15000,
    print: function() {}
  },
  capabilities: {
    browserName: 'chrome',
    chromeOptions: {
      args: ['--disable-extensions', '--show-fps-counter=true', '--disable-infobars', '--incognito', '--disable-gpu', '--headless']
    }
  },
  onPrepare: async function() {
    browser.params.ts = Date.now();
    if (browser.params.env === undefined)
      browser.params.env = 'test';
    await jasmine.getEnv().addReporter(new SpecReporter({
      spec: {
        displayStackTrace: true,
        displaySuccessful: true,
        displayFailed: true,
        displayPending: true,
        displaySpecDuration: true,
        displaySuiteNumber: true
      },
      summary: {
        displayFailures: true,
        displayPending: false
      },
      colors: {
        enabled: true,
        successful: 'green',
        failed: 'red',
        pending: 'yellow'
      }
    }));
    await browser.get('https://dashboard-' + browser.params.env + '.website.com');
    await browser.driver.findElement(by.css('[type="email"]')).sendKeys(browser.params.login.usr);
    await browser.driver.findElement(by.css('[type="password"]')).sendKeys(browser.params.login.pwd);
    await browser.driver.findElement(by.css('[type="submit"]')).click();
    return await browser.driver.wait(function() {
      return browser.driver.getCurrentUrl().then(function(url) {
        return /calendar_bo/.test(url);
      });
    }, 10000);
  }
};
有时,每当量角器启动并启动测试时,它都会受到比赛条件的影响。
我找不到任何线程、帖子、评论或任何人有过这样的输出。我的想法快用完了,如果有任何想法或潜在的解决方案,我都会非常感激。谢谢

没有足够的声誉发表评论

您是否同时配置了seleniumServerJar和seleniumAddress?文档指定仅使用1

量角器需要知道如何连接到浏览器的驱动程序 正在测试。这通常通过Selenium服务器完成。
有五个选项-指定以下选项之一:

  • seleniumServerJar-在本地启动独立的Selenium服务器
  • seleniumAddress-连接到已在运行的Selenium服务器
  • sauceUser/sauceKey-通过Sauce实验室使用远程Selenium服务器
  • browserstackUser/browserstackKey-通过BrowserStack使用远程Selenium服务器
  • directConnect-直接连接到浏览器驱动程序。此选项仅适用于Firefox和Chrome

  • 在发送电子邮件之前,您是否可以尝试以下代码:

    var EC = protractor.ExpectedConditions;
    var email_element = element(by.css('[type="email"]'));
    browser.wait(EC.visibilityOf(email_element), 10000);
    

    嘿,谢谢你的回答<代码>[09:03:07]W/driverProviders-使用托管的驱动程序提供程序,但也找到了额外的驱动程序提供程序参数:seleniumServerJar量角器始终用于忽略额外参数。我试着对不需要的参数进行注释,只保留seleniumAddress,但遗憾的是,问题依然存在。这并没有解决我的问题,但它帮助我找出了真正的问题所在。遗憾的是,这是我力不从心的事情,但通过您建议的检查和
    browser.wait()
    ,我添加了一些冗长的内容,让我和其他人都能更清楚地了解情况。非常感谢。