Tag: selenium webdriver

量angular器browser.get()不导致URL与致命错误exception

我正在使用“量angular器页面对象”模型来testing多页单页混合Web服务。 我正在做的工作是首先在一个非angular度的网站上注册一些教师和学生,然后login到每个用户不同的url和做的东西。 我使用的IDE是Webstorm。 注册部分进展顺利,但当它应该导航到loginfunction中的新url。 它扔了致命错误:CALL_AND_RETRY_LAST分配失败 – 进程内存不足我不知道发生了什么,因为loginfunction在前几个testing中工作正常(我删除了其他testing用例的清洁),有什么build议吗? 先谢谢你。 这里是我的代码片断,应该是非常简单的。 describe('saltare registration test', function () { var url,username = 'xxx',password = 'xxx'; describe('instructor and student registration', function () { beforeEach(function () { isAngularSite(false); url = 'https://prod-cn.saltare.pearson-intl.com/batch_reg/batches/'; common.login(url, username, password); }); it('instructor register via saltare', function () { saltare.updateUsers('instructor', 2); }); }); describe('instructor and student setup', function […]

jdk,node&webdriver升级后无法启动webdriver-manager

我已经升级了Node,Protractor,JDK和webdriver到最新版本。 现在我不能通过CMD启动webdriver-manager,也不能通过Node命令行启动。 任何想法? 错误:您的环境已经设置为使用Node.js 0.12.2(x64)和npm。 C:\Users\idan>cd c:\automation\tests\node_modules\protractor\bin c:\automation\tests\node_modules\protractor\bin>webdriver-manager start selenium.pid: 6484 'java' is not recognized as an internal or external command, operable program or batch file. Selenium Standalone has exited with code 1 c:\automation\tests\node_modules\protractor\bin>

seleniumwebdriver挂在非常简单的JavaScript代码promise.then

最近我和nodejs&selenium-webdriver经历了一个非常奇怪的错误。 它看起来与nodejs事件循环/ promise / selenium-webdriver相关。 简而言之: webdriver.get调用在使用时会挂起一些promise.then 。 首先,让我们看看一段JavaScript代码,效果很好: const WebDriver = require('selenium-webdriver') var driver = new WebDriver.Builder() .setAlertBehavior('ignore') .forBrowser('chrome') .build() function ok() { console.log('ok: driver.get will open a browser window\n' + '\n' + ok + '\n') driver.get('about:blank') } ok() 这段代码将打开一个浏览器窗口,按预期工作。 但是下面的所有代码都会显示奇怪的行为。 Bug – driver.get会挂起 添加一个虚拟的.then(() => 'test') function bug() { console.log('bug: `driver.get` will hang\n' […]

从promise块返回函数中的值

我正在尝试编写一个函数(使用WebdriverJS lib)遍历元素列表,检查名称并构build与该名称相对应的xpath定位器。 我在这里简化了xpath定位器,所以不要留意。 我在这里遇到的问题是:1)调用这个函数返回undefined。 据我所知,这是因为return语句不在其位置上,而是:2)将它放在一个正常的同步代码正常工作的地方,不适用于asynchronouspromise,因此调用此函数将返回同样未定义,但是因为return语句在“driver.findElement”语句之前触发。 如果我想通过调用这个函数得到createdTaskvariables,我应该如何在这里使用return语句? var findCreatedTask = function() { var createdTask; driver.findElements(By.xpath("//div[@id='Tasks_Tab']")).then(function(tasks) { for (var index = 1; index <= tasks.length; index++) { driver.findElement(By.xpath("//div[@id='Tasks_Tab'][" + index + "]//div[@class='task-title']")).getText().then(function(taskTitle) { if (taskTitle == "testName") { createdTask = "//div[@id='Tasks_Tab'][" + index + "]"; return createdTask; } }); } }); };

在NodeJs上运行Selenium

这是我第一次在Windows 7环境中使用NodeJs上的selenium-webdriver 。 以下是我所做的尝试使其工作: 安装的NodeJs 7.5 (由Selenium官方支持,如Git https://github.com/SeleniumHQ/selenium/tree/master/javascript/node/selenium-webdriver所述 ) 使用npm安装selenium-webdriver 已下载chromedriver.exe 2.27到"C:\Selenium Utilities\chromedriver" 添加chromedriver到我的PATH为C:\Selenium Utilities\chromedriver; 从Selenium Git页面添加了我的第一个testing: var webdriver = require('selenium-webdriver'), By = webdriver.By, until = webdriver.until; var driver = new webdriver.Builder() .forBrowser('chrome') .build(); driver.get('http://www.google.com/ncr'); driver.findElement(By.name('q')).sendKeys('webdriver'); driver.findElement(By.name('btnG')).click(); driver.wait(until.titleIs('webdriver – Google Search'), 1000); driver.quit(); 尝试通过node test.js运行testing 结果,我得到错误说(摘录): “…抛出新的错误('不知道如何build立驱动程序:'+浏览器” “错误:不知道如何构build驱动程序:C;你忘记调用usingServer(url)? 我究竟做错了什么? 我是否需要运行一个单独的Selenium服务器才能运行?

在执行剩下的testing时保持nodeJs服务器运行

im新nodeJS和webdriveIO编写一些webdriveIOtesting我有两个函数:smsServer(); 和startTest(); 1- smsServer(); function smsServer(){ // parse application/x-www-form-urlencoded app.use(bodyParser.urlencoded({ extended: false })) // parse application/json app.use(bodyParser.json()) app.get('/',function(req,res){ console.log(req.query.text); }); app.post('/', function(req,res){ console.log("Post"); console.log(req.body); res.sendStatus(200); }); app.listen(3000, function(req, res){ console.log('App listening on localhost:3000'); console.log("req: ",req); console.log("res: ",res); }); } 2- startTest(); just some Test WDIO 我想保持我的服务器运行接收一些validation码,而第二个function(testing)执行任何帮助将升值之前,我的老板杀了我

WebdriverJS是一个全function的替代原来的seleniumwebdriver

我正在寻找一个基于Java脚本的Web自动化框架,并遇到WebdriverJS 在主页上说下面。 ✔提供超过50个有用的操作来处理您的应用程序 ✔支持云中的seleniumtesting ✔兼容所有的NodeJStesting框架 它并没有真正的说,它是如何站在相比,原来的seleniumwebdriver的全部function,像这样的问题 – 是所有的seleniumapis映射呢 如果我决定使用它而不是seleniumwebdriver,我会怎么想? 与selenium或任何其他networking自动化框架的任何其他比较 注意:我不是从云testing的angular度来看,只需要一个工具,我可以在我的桌面使用自动化一些基于HTML的网站的testing用例

如何暂停或等待在摩卡testing案例 – setTimeout不工作

我build了一个selenium摩卡testing用例打开谷歌,input一些文本,然后单击search。 这是我的selenium摩卡testing用例代码片段 但是我只需要在inputsearch文本60秒后执行点击search var assert = require('assert'), test = require('selenium-webdriver/testing'), webdriver = require('selenium-webdriver'); var urladd ='http://www.google.com/'; function clickLink(link){ link.click(); return link; } var testSimple=function(searchContent){ var browser = new webdriver.Builder().withCapabilities(webdriver.Capabilities.chrome()).build(); test.describe('\n\nGoogle Search\n', function() { this.timeout(60000); test.it('Enter element to be searched', function(done) { browser.get(urladd); browser.findElement(webdriver.By.name('q')).sendKeys(searchContent); browser.getTitle().then(function(title) { assert.equal(title,'Google'); }) }); test.it('Click search button', function(done) { setTimeout(function(){ browser.findElement(webdriver.By.name('btnG')).then(clickLink).then(function(){ […]

为什么会用`execvp`全新安装node.js和量angular器错误没有这样的文件或目录?

我已经安装了几个版本的node.js和量angular器,然后按照说明来更新webdriver,但没有一个组合我成功地启动了webdriver。 一些有用的细节: 在Ubuntu 64位 试了node.js v0.10.15和v0.10.26 测量量angular器0.18.1和0.19.0 以下是我运行的命令,以及相应的错误(安装量angular器后): $ webdriver-manager update Updating selenium standalone downloading https://selenium.googlecode.com/files/selenium-server-standalone-2.39.0.jar… Updating chromedriver downloading https://chromedriver.storage.googleapis.com/2.8/chromedriver_linux64.zip… chromedriver_2.8.zip downloaded to /home/<user>/.nvm/v0.10.26/lib/node_modules/protractor/selenium/chromedriver_2.8.zip selenium-server-standalone-2.39.0.jar downloaded to /home/<user>/.nvm/v0.10.26/lib/node_modules/protractor/selenium/selenium-server-standalone-2.39.0.jar $ webdriver-manager start execvp(): No such file or directory seleniumProcess.pid: 4567 events.js:72 throw er; // Unhandled 'error' event ^ Error: spawn ENOENT at errnoException (child_process.js:988:11) at Process.ChildProcess._handle.onexit […]

cucumberjs:发现一个步骤结果是失败的

任务 : 使用selenium,webdriver,cucumberjs执行自动验收testing。 find一个失败的验收testing场景并截取该页面 除此之外,作为一个人工制品在去pipe道。 那是我今天的任务。 我已经完成了所有这些工作,包括编写场景testing,selenium安装,pipe道和其他一切需要的东西。 唯一的问题是 – 我无法弄清楚如何find一个失败的scheme步骤,并采取页面的屏幕截图。 问题详细信息 :我将以下代码放置在我的步骤定义中,这是针对每个scheme步骤运行的 //file: features/setpdefinitions/common.step.js var commonWrapper = function commonWrapper() { this.World = require('../support/world').World; this.Before(function (next) { this.initBrowser(next); }); this.After(function (next) { this.browser.quit(next); }); this.StepResult(function (event, callback) { var stepResult = event.getPayloadItem('stepResult'); console.log(stepResult.isFailed()); callback(); }); }; module.exports = commonWrapper; World包含浏览器启动方法。 这是我正在testing的示例function场景 Feature: Forgot Password As a […]