Tag: selenium

在设置Selenium + NodeJS时运行testingJS脚本时出错

我主要是按照这个指南在运行Ubuntu 14.04的Vagrant中设置Selenium + Node + Chrome。 Running Headless Selenium with Chrome 当我运行第6步中的确切示例时,NodeJS返回错误,而不是返回步骤7中显示的结果。 由NodeJS给出的错误: vagrant@dev:/pm/setup/install/chrome$ node test.js /pm/setup/install/chrome/node_modules/selenium-webdriver/lib/goog/async/nexttick.js:39 goog.global.setTimeout(function() { throw exception; }, 0); ^ UnknownError: unknown error: unable to discover open pages (Driver info: chromedriver=2.2,platform=Linux 3.13.0-44-generic x86_64) (WARNING: The server did not provide any stacktrace information) Command duration or timeout: 20.67 seconds Build info: version: […]

量angular器networking驱动程序与Linux上的selenium

我有以下设置: 量angular器运行从一个Windows虚拟机使用一个独立的selenium服务器上的一个Linux无头盒子。 这个想法是在我的windows vm上安装了chrome,并且量angular器使用这个chrome安装来通过linux上的selenium运行testing。 我使用webdriver-manager启动在linuxx盒子上启动selenium服务器。 当我从VM运行testing时,出现以下错误 Caused by: org.openqa.selenium.WebDriverException: unknown error: cannot find Chrome binary (Driver info: chromedriver=2.14.313457 (3d645c400edf2e2c500566c9aa096063e707c9cf),platform=Linux 2.6.32-431.29.2.el6.x86_64 x86_64) (WARNING: The server did not provide any stacktrace information) Command duration or timeout: 134 milliseconds Build info: version: '2.45.0',java.version: '1.7.0_79' Driver info: org.openqa.selenium.chrome.ChromeDriver at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57) at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) at java.lang.reflect.Constructor.newInstance(Constructor.java:526) at org.openqa.selenium.remote.ErrorHandler.createThrowable(ErrorHandler.java:204) […]

如何使用Webdriver控制Firefox扩展的边栏

我正在尝试使用由selenium-webdriver NodeJs包提供的相关驱动程序来testingFirefox扩展。 该扩展创build了一个侧边栏,其句柄我无法使用getAllWindowHandles方法find。 花了一些时间阅读文档,似乎Selenium不支持标签; 也许这就是为什么。 有没有办法检索一个Firefox(扩展)边栏的句柄,以便能够在其上运行testing?

安装Chrome个人资料的扩展程序 量angular器

如何检查扩展是否被安装? 我已经手动尝试,并没有看到它,但我能够在Firefox中看到它。 helper.js: var q = require('q'); var fs = require('fs'); exports.getCapabilities = function (filename) { var deferred = q.defer(); fs.readFile(filename, function (err, data) { var capabilities = { 'browserName': 'chrome', 'chromeOptions': { extensions: [ data.toString('base64') ] } }; deferred.resolve(capabilities); }); return deferred.promise; }; var helper = require('./helper.js'); directConnect: false, exports.config = { specs: ['spec.js'], […]

使用量angular器webdriver-manager运行一个任务后,Grunt停止

我目前正在试图将一些量angular器E2Etesting绑定到咕噜声。 到目前为止,还没有那么成功。 我所能find的所有文件都说咕噜声应该适合我的情况。 但是,在运行webdriver-manager update –standalone ,grunt退出而没有错误消息或者运行任何其他任务。 我的Gruntfile: 'use strict'; module.exports = function(grunt) { grunt.initConfig({ pkg: grunt.file.readJSON('package.json'), protractor: { options: { configFile: "./conf.js", // Default config file keepAlive: true, // If false, the grunt process stops when the test fails. noColor: false, // If true, protractor will not use colors in its output. args: { […]

量angular器在onPrepare之后随机失败

我遇到的问题是在本地和Selenium Grid上完全随机发生的。 在onPrepare之后,某些规格会随机失败。 命令提示符提供此信息。 currentRunnable()。addExpectationResult(false,{^ TypeError:无法读取在Env.fail(c:\ Users \ User \ AppData \ Roaming \ npm \ node_modules \ protracto r \ node_modules \ jasmine \ node_modules \ jasmine中未定义的属性'addExpectationResult' -core \ lib \ jasmine-core \ jasmine.js:894:24) 和 From:Task:WebDriver.manage()。window()。在[object Object] .webdriver.WebDriver.schedule(c:\ Users \ User \ AppDat a \ Roaming \ npm \ node_modules \ protractor \ node_modules […]

在Windows上量angular器webdriver不会执行任何testing,但说,所有的传递

我的同事有一台运行Windows 7的计算机。出于任何原因,在更新所有NPM模块之后,它已经立即执行testing,而不用等待默认的导航执行。 所有的testing显示为通过,但没有testing正在执行。 另外,如果我直接编辑protractor.js文件来获取浏览器URL(使用browser.getCurrentUrl()。then()),它不执行承诺。 在承诺应该工作的其他地方,他们不这样做。 就好像承诺库不存在或不能正确解决量angular器一样。 量angular器甚至没有等待浏览器导航到“data:text / html”的默认URL。 一个不同的Windows 7机器工作正常,一个吞咽量angular器任务按预期运行testing套件。 量angular器:3.2.2 NodeJS:5.10.1(最新版本) 我们还在全球范围内安装了量angular器,正如我们部门的人员所build议的,尽pipe我对此持保留意见。 它没有解决这个问题。 我已经在全局和本地删除了node_modules目录,重新安装了所有东西,重新克隆了项目,并重新运行了整个安装程序。 正在执行的命令: "C:\Program Files\nodejs\node.exe" node_modules/protractor/built/cli.js spec/conf/protractor.e2eTests.js –suite smoke 我们的Jenkins服务器的最近更改是包含此命令来安装gulp-webdriver的webdriver以及量angular器的标准webdriver: "myScript": "npm install –registry https://registry.npmjs.org/ && node ./node_modules/protractor/bin/webdriver-manager update && node ./node_modules/gulp-protractor/node_modules/protractor/bin/webdriver-manager update –standalone" 由于包使用旧的依赖版本,npm安装有几个警告,但没有致命错误。 任何想法或帮助将不胜感激。 在这一点上,我们正在考虑重新成像机器来解决问题。

在linux上使用nightwatch运行seleniumtesting

我有一个Linux的盒子,我正在试图运行seleniumtesting(写在夜间)。 我在http://chromedriver.storage.googleapis.com/index.html?path=2.9/(linuxx64位之一)上安装了chromedriver 我也安装了独立的seleniumjar 我运行以下命令 DISPLAY=:1 xvfb-run java -jar lib/selenium-server-standalone-2.52.0.jar -Dwebdriver.chrome.driver=lib/chromedriver 这是我的守夜configuration: { "src_folders": [ "tests" ], "output_folder": "reports", "custom_commands_path": "custom_commands", "custom_assertions_path": "", "page_objects_path": "", "live_output" : true, "globals_path": "globals.js", "selenium": { "start_process": true, "server_path": "lib/selenium-server-standalone-2.52.0.jar", "log_path": "", "host": "127.0.0.1", "port": 4444, "cli_args": { "webdriver.chrome.driver": "lib/chromedriver", "webdriver.chromeJenkins.driver": "../../tools/chromedriver/chromedriver", "webdriver.ie.driver": "lib/IEDriverServer_x64_2.52.2.exe", "trustAllSSLCertificates": true } }, "test_workers": { […]

将Selenium的findElements中的承诺数组转换为对象数组

我正在使用Selenium node.js我正在尝试执行以下操作 var driver = *webdriver instance*; var my_xpath = *an xpath string*; var ele; Q.all(driver.findElements(webdriver.By.xpath(my_xpath))).then(function(elements) { for (ele in elements) { console.log(ele.getText()); }; } 我的印象是, Q.all会将由driver.findElements返回的driver.findElements的数组转换成一个值的数组,这样当我输出ele.getText() ,它将是一个值。 然而,在这种情况下, ele仍然是一个承诺。 我在这里错过了什么? 请注意,我认识到,对于上述例子,这是不必要的,我可以简单地使用ele.getText().then ,但我的实际程序需要所有的值之前继续。

如何从meteorselenium错误恢复?

我的代码在Meteor服务器上调用(对于那些不知道meteor的人来说,它运行在Node.js之上): var webdriver = require('selenium-webdriver') function getPage(page) { driver = driver || new webdriver.Builder().forBrowser('chrome').build(); driver.get(page).catch(function(error){ throw new Meteor.Error("Can't get page " + page) }) } 熟悉meteor的人知道它通常应该把Meteor.Error传播给客户。 相反,Selenium捕获我的错误并退出代码1,导致服务器重新启动: W20160712-12:49:40.093(-7)? (STDERR) W20160712-12:49:40.104(-7)? (STDERR) /Users/irinaapex/irina/meteor/selenium/node_modules/selenium-webdriver/lib/promise.js:654 W20160712-12:49:40.104(-7)? (STDERR) throw error; W20160712-12:49:40.105(-7)? (STDERR) ^ W20160712-12:49:40.105(-7)? (STDERR) Error: [Can't get page i] W20160712-12:49:40.118(-7)? (STDERR) at imports/somethingSel.js:35:15 W20160712-12:49:40.120(-7)? (STDERR) at ManagedPromise.invokeCallback_ (/Users/irinaapex/irina/meteor/selenium/node_modules/selenium-webdriver/lib/promise.js:1379:14) […]