Articles of selenium chromedriver

我怎样才能部署一个Selenium的NodeJS的Web应用程序Heroku?

我在本地创build了一个Selenium NodeJS Web应用程序。 它使用chromedriver ,我的驱动程序必须使用一些chrome扩展。 在当地一切都好。 我想在Heroku中使用它,但是我做不到。 我尝试了与构build包,但我不能再做一遍。 我怎样才能把它部署到Heroku? package.json(依赖项): .. "dependencies": { "body-parser": "*", "express": "*", "firebase": "^4.1.5", "firebase-admin": "^4.2.1", "selenium-webdriver": "*", "chromedriver":"*", "telebot":"*" }, ..

无法使用Node.js中的Selenium Webdriver检索Chrome控制台的内容

我正在尝试使用node.js中的Selenium Webdriver来阅读Chrome控制台,但是到目前为止它并不成功。 没有错误。 但是它返回的是一个空数组[]。 以下是HTML和JavaScript函数的一个片段。 当在Chrome中手动运行时,这些写入控制台就好了。 <button name="button1" type="button" onclick="test_console()">Test</button> function test_console() { console.log("Hello World"); } 以下是我在node.js中使用的代码来尝试将输出传递给Chrome。 const webdriver = require('selenium-webdriver'); const chromeDriver = require('selenium-webdriver/chrome'); const logging = require('selenium-webdriver').logging; const path = require('chromeDriver').path; const service = new chromeDriver.ServiceBuilder(path).build(); chromeDriver.setDefaultService(service); const {By, Key} = webdriver; webdriver.promise.USE_PROMISE_MANAGER = false; const CHROME_BIN_PATH = '/Applications/Google\ Chrome.app/Contents/MacOS/Google\ Chrome'; const prefs […]

量angular器:browserName'chrome'不受directConnect支持

我尝试在Windows 7 x64上使用量angular器运行一些testing,但出现以下错误: [16:59:18] E/direct – Error code: 135 [16:59:18] E/direct – Error message: browserName 'chrome' is not supported with directConnect. [16:59:18] E/direct – Error: browserName 'chrome' is not supported with directConnect. at IError (C:\Work\GIT\pv-ui\node_modules\protractor\built\exitCodes.js:6:1) at ProtractorError (C:\Work\GIT\pv-ui\node_modules\protractor\built\exitCodes.js:11:9) at BrowserError (C:\Work\GIT\pv-ui\node_modules\protractor\built\exitCodes.js:52:9) at Direct.setupDriverEnv (C:\Work\GIT\pv-ui\node_modules\protractor\built\driverProviders\direct.js:36:23) at Direct.setupEnv (C:\Work\GIT\pv-ui\node_modules\protractor\built\driverProviders\driverProvider.js:111:34) at q.then (C:\Work\GIT\pv-ui\node_modules\protractor\built\runner.js:335:41) at _fulfilled (C:\Work\GIT\pv-ui\node_modules\q\q.js:834:54) at self.promiseDispatch.done […]

Windows上的Selenium WebDriver错误:找不到logging.js

我使用Selenium的WebDriverJS,通过JavaScript在Windows 8.1上自动化Chrome。 我下载了ChromeDriver和Selenium Standalone Server jar文件的副本,并放在E:\Selenium目录中。 我开始Selenium独立服务器,并试图运行我的JavaScript代码编写BrowserTest.js文件与节点命令提示符 E:\Selenium> Node BrowserTest.js BrowserTest.js : var driver = require("selenium-webdriver"); function createDriver() { var driver = new driver.Builder() .usingServer('http://localhost:4444/wd/hub') .withCapabilities(driver.Capabilities.chrome()) .build(); driver.manage().timeouts().setScriptTimeout(10000); return driver; } var driver = createDriver(); driver.get("http://www.google.com"); driver.getTitle().then(function (title) { console.log(title); }); driver.quit(); 但它会引发错误: fs.js:500 return binding.open(pathModule._makeLong(path), stringToFlags(flags), mode); ^ Error: ENOENT, no such file or […]

xpath上去父母,然后回到孩子

<div class="classA"> <label class="classB"> <span>Referral Date</span> </label> <div> <input class="classC"> </div> </div> 我正在使用xpath来抓取'推荐date'。 这是一个要求,因为用户将传递这个人类可读标签给我。 我知道如何到达那里: //div/label[@class="classB"]/span[text()="Referral Date"] 现在,我需要访问input[@ class =“classC”],以在我的WebDriver自动化中点击它。 我可以做这样的事吗? //div/label[@class="classB"]/span[text()="Referral Date"] /parent::div/div/input[@class="classC"] 那么,这不适合我。 我也试过这个没成功: //div/label[@class="classB"]/span[text()="Referral Date"] /following-sibling::div/input[@class="classC"] 没有工作,我不认为它可以因为跟随兄弟姐妹只是指内的节点。 对?

如何计算multidimensional array中的项目总数?

下面是我用来从我的转发表中检索数据的代码。 这给出了multidimensional array的输出。 请检查输出。 我想获得整个multidimensional array中的项目总数和每个数组中的项目总数。 更详细地说,整个multidimensional array有30个项目,每个数组中有6个项目我想要得到这两个值。 如何计算这两个值? var RepeaterTable = element.all(by.repeater("view in ctrl.view track by $index")).each(function(rowelem,index){ rowelem.getText().then(function(BlockTrans){ console.log("****index and RowElem\n"+index+"\n",BlockTrans); var item = BlockTrans; }); }); 输出上面的代码 0 Morrison Male Jun 22, 2017 26 Yes Edit ****index and RowElem 1 Steven Male Jun 22, 2017 39 Yes Edit ****index and RowElem 2 Emy […]

如何使用Driver Wait Before Text在selenium中

我正在尝试使用以下等待条件的驱动程序等待函数。 我想testing一个button上的文字是否等于/匹配 “ 注册 ”。 以下是我的代码: driver.wait(until.elementTextIs(By.css('body > div.site-wrapper > div > div > div.inner.cover > p:nth-child(3) > a.btn.btn-lg.btn-primary'),'Sign Up'),80000) 但运行后,我得到的错误: C:\Users\bob\Documents\testElectron\node_modules\selenium- webdriver\lib\promise.js:2626 Uncaught TypeError: element.getText is not a function 我试图手动检索button上的文字 var Button = driver.findElement(By.css('body > div.site-wrapper > div > div > div.inner.cover > p:nth-child(3) > a.btn.btn-lg.btn-primary')); Button.getText().then(function(text){ console.log(text); }); 它的工作原理,但我想使用的条件等待。 PS:button确实存在,当我运行我使用铬驱动程序的Selenium nodeJS实现运行命令时可见。

如何在selenium webdriver中获取文本框的值,Js

我正在努力获取文本框的实际文本,因为我需要它作为文本存储在一个variables,而不是比较它的价值,因为我需要将其添加到URL的结尾调用另一个页面。 我尝试使用ebealbuild议的代码,但它没有做我想要的: var access_token = driver.findElement(webdriver.By.name("AccToken")) .getAttribute("value") .then(console.log); // This outputs the right result but only to the console as I can't save it to a variable var access_token = driver.findElement(webdriver.By.name("AccToken")) .getText(); access_token = access_token.then(function(value){ console.log(value); }); console.log("the new one : " + access_token); // this one outputs : the new one: Promise::304 {[[PromiseStatus]]: "pending"} […]

如何从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) […]

使用Node.js上的Selenium Webdriver Chrome阅读控制台

我想在Node.js中使用Selenium Webdriver Chrome进入一个网页,填写一个input,单击一个button,然后检索浏览器控制台的内容。 我能够得到网页,填写input,然后单击button,但到目前为止我无法弄清楚如何检索控制台的内容。 我怎么做? 这是迄今为止的代码: const webdriver = require('selenium-webdriver'); const chromeDriver = require('selenium-webdriver/chrome'); const path = require('chromeDriver').path; const service = new chromeDriver.ServiceBuilder(path).build(); chromeDriver.setDefaultService(service); const { By, until } = webdriver; webdriver.promise.USE_PROMISE_MANAGER = false; const CHROME_BIN_PATH = '/Applications/Google\ Chrome.app/Contents/MacOS/Google\ Chrome'; const options = new chromeDriver.Options(); options.setChromeBinaryPath(CHROME_BIN_PATH); options.addArguments( 'headless', 'disable-gpu', ); const main = async () […]