Tag: webdriver

如何在NodeJs中loggingwebdrivertesting的video

我打算使用node.JS webdriver / Mocha /量angular器中的任一个。 有没有一种简单的方法来录制video中的任何一个? 我已经看过在运行testing时使用ffmpeglogging整个屏幕的选项,但是如果有任何nodejs库可以帮助我直接logging任何这些video。 我会用这个。

节点WebDriverJS的executeScript行为

我有一个WebDriverJS节点脚本在应用程序的全局范围内具有以下内容: var helperFunctions = { 'getElementEssentials': function get(orig, tmp, level) { var tmp = tmp || {}; var level = level || 0; for(var i in orig) { if(!orig[i]) { continue; } if(typeof(orig[i]) === 'function' || typeof(orig[i]) === 'object' || level > 1) { continue; } if(typeof(orig[i]) === 'array') { level++; get(orig[i], tmp, level); continue; […]

量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?

将variables从beforeLaunch传递给onPrepare

我在configuration中使用了带有sharedTestFiles: true ,我需要为将为所有套件运行的所有报告创build一个公共文件夹。 试图通过在beforeLaunch定义一个datevariables来实现这beforeLaunch ,然后将其传递给onPrepare函数,但它返回undefined 。 我试图等待datevariables被定义(认为这可能是一个asynchronous问题),但即使在等待10秒后,date仍然没有定义。 这甚至是可能的,可以通过一个variables从beforeLaunch到onPrepare ? beforeLaunch: function() { date = dateTime.getFullDateTime(); } onPrepare: function() { return webdriver.promise.delayed(1000).then(function() { return browser.driver.wait(function() { if(date !== undefined) { return true; } } }, 10000, 'onPrepare wait'); }

webdrivererror:连接重置

这是我在控制台没有任何改变在npm或在代码,没有发现在互联网上有关这个问题 [14:29:48] I/local – Starting selenium standalone server… [14:29:48] I/launcher – Running 1 instances of WebDriver [14:29:50] I/local – Selenium standalone server started at http://192.168.80.132:49611/wd/hub D:\Workspace\pen\content\node_modules\protractor\node_modules\selenium-webdriver\error.js:27 super(opt_error); ^ WebDriverError: Connection reset at WebDriverError (D:\Workspace\pen\content\node_modules\protractor\node_modules\selenium-webdriver\error.js:27:10) at Object.checkLegacyResponse (D:\Workspace\pen\content\node_modules\protractor\node_modules\selenium-webdriver\erro r.js:580:13) at D:\Workspace\pen\content\node_modules\protractor\node_modules\selenium-webdriver\lib\webdriver.js:64:13 at Promise.invokeCallback_ (D:\Workspace\pen\content\node_modules\protractor\node_modules\selenium-webdriver\lib\pro mise.js:1329:14) at TaskQueue.execute_ (D:\Workspace\pen\content\node_modules\protractor\node_modules\selenium-webdriver\lib\promise. js:2790:14) at TaskQueue.executeNext_ (D:\Workspace\pen\content\node_modules\protractor\node_modules\selenium-webdriver\lib\prom ise.js:2773:21) at D:\Workspace\pen\content\node_modules\protractor\node_modules\selenium-webdriver\lib\promise.js:2652:27 at […]

差异protractor.controlFlow().exec和browser.call()

我知道要将一个自定义函数插入到量angular器控制stream程中,您可以使用protractor.controlFlow()。execute,如下所示: protractor.promise.controlFlow().execute(function() { return getData().then(function(my_data) { return my_data.some_process(); }); }); 但是,似乎我可以使用browser.call()方法做同样的事情: browser.call(function() { return getData().then(function(my_data) { return my_data.some_process(); }); }); 据我所知,browser.call是webdriver控制stream的包装,protractor.controlFlow()与量angular器本身具有类似的function。 两者都回报“承诺”,所以他们似乎在做同样的事情。 两种方法是可以互换的吗? 如果不是的话,我什么时候该用这个或那个。

selenium webdriver getText返回

我有一个selenium脚本,应该从包含所需值的单元格后的表格列中获取文本。 我有脚本工作,但由于某种原因,当我运行getText(),并检查返回的值我得到[对象对象]在我的node.js控制台…我很困惑我试图parsing它为一个string,我已经调用了该variables的getText()将是元素和其他几种方式,但无济于事… 这里是我的脚本部分: if(tempID!=1){ //tr[contains(td[1], "ID#")]/td[#] scrapeArray[0] = tempID; console.log(scrapeArray[0]); } }).then(function(){ scrapeArray[1] = String(driver.findElement(webdriver.By.xpath('//tr[contains(td[1], "'+tempID+'")]/td[2]')).text()); console.log("1: "+scrapeArray[1]); }).then(function(){ scrapeArray[2] = String(driver.findElement(webdriver.By.xpath('//tr[contains(td[1], "'+tempID+'")]/td[3]')).text()); console.log("2: "+scrapeArray[2]); }).then(function(){ scrapeArray[3] = String(driver.findElement(webdriver.By.xpath('//tr[contains(td[1], "'+tempID+'")]/td[4]')).text()); console.log("3: "+scrapeArray[3]); }).then(function(){ scrapeArray[4] = String(driver.findElement(webdriver.By.xpath('//tr[contains(td[1], "'+tempID+'")]/td[5]')).text()); console.log("4: "+scrapeArray[4]); }).then(function(){ scrapeArray[5] = String(driver.findElement(webdriver.By.xpath('//tr[contains(td[1], "'+tempID+'")]/td[6]')).text()); console.log("5: "+scrapeArray[5]); }).then(function(){ scrapeArray[6] = String(driver.findElement(webdriver.By.xpath('//tr[contains(td[1], "'+tempID+'")]/td[7]')).text()); console.log("6: "+scrapeArray[6]); }).then(function(){ numberOf++; […]

如何在Heroku上使用Selenium Webdriver?

我正在开发一个Node.js应用程序,我使用Selenium Webdriver进行刮取。 但是,当我在Heroku上部署时,Selenium不起作用。 我如何让Selenium在Heroku上工作?

如何findnode.js页面上的所有链接?

我现在在学习node.js(webdriver),并且不能理解一些问题。 我试图在互联网search,没有find任何我需要的任务的例子。 例如,我如何login来控制页面上的所有链接(例如bing.com)? 我不明白为什么这样简单的JavaScript结构 document.getElementsByTagName('a'); 在node.js中不起作用 如果我使用 findElement(webdriver.By.tagName('a')) 我在页面上只有第一个链接,为什么? 数组在nodejs中不可用? 如果不可能,应该使用哪个模块(例子)。 就目前来看,我的印象是,即使是一个简单的function需要额外的模块,因此我所有的第一步都失败了,因为我正在尝试做任何事情,像在JavaScript中。 谢谢