Articles of selenium

在节点javascript中使用selenium-webdriver执行“命令”

我有兴趣通过JavaScript API https://code.google.com/p/selenium/source/browse/javascript/webdriver/command.js执行一些高级“命令” 如果我从基本代码开始: var browser = new webdriver .Builder() .usingServer(server.address()) .withCapabilities(webdriver.Capabilities.phantomjs()) .build(); 我尝试执行的每种“可能”语法都失败了。 例如: // does not work console.log(webdriver.Command('getWindowSize')) // does not work console.log(browser.Command('getWindowSize')) 有谁知道如何执行“获取窗口大小”,或“设置窗口大小”在selenium JavaScript的WebDriver?

使用BrowserMobProxyconfigurationWebDriverIO

有没有人有一个正确的例子如何configurationWebDriverIO BrowserMobProxy ? 这是我可以捕捉networkingstream量。 我以前曾经使用过WebDriverJS ,而WebDriverJS本质上是WebDriverIO的弃用版本。

select嵌套的iframe – selenium / javascript / node-js

我想用node-js中的selenium webdriver模块在iframe中select一个嵌套的iframe。 例如: <iframe id="firstframe"> <div id="firstdiv"></div> <iframe id="secondframe"> <div id="seconddiv"></div> </iframe> </iframe> 对于node-js部分: driver.switchTo().defaultContent(); driver.switchTo().frame("firstframe"); // –> works driver.switchTo().frame("secondframe"); // –> NoSuchFrameError iframes = driver.findElements(webdriver.By.tagName('iframe')).then(function(elements){ console.log(elements.length); // –> if I put this code before the switch to first frame output: 1, if I put it after output: 0) }); 我尝试使用索引号,但这也失败了。 编辑: 好吧,我想通了,但我的答案由于某种原因被用户@casparOne删除。 如果有人仍然想知道这里的问题是什么: 我的代码上面的作品,只是不在本地。 […]

扩展seleniumwebdriver js

前言 我试图写一些selenium-webdriver的扩展,如下所示: var webdriver = require('selenium-webdriver'); var fs = require('fs'); var resumer = require('resumer'); webdriver.WebDriver.prototype.saveScreenshot = function(filename) { return this.takeScreenshot().then(function(data) { fs.writeFile(filename, data.replace(/^data:image\/png;base64,/,''), 'base64', function(err) { if(err) throw err; }); }); }; webdriver.WebDriver.prototype.streamScreenshot = function() { var stream = resumer(); this.takeScreenshot().then(function(data) { stream.queue(new Buffer(data.replace(/^data:image\/png;base64,/,''), 'base64')).end(); }); return stream; }; module.exports = webdriver; 然后我只包括我的扩展webdriver,而不是官方的: var webdriver […]

使用Node.js无头浏览器与selenium混合?

我很想知道有没有人尝试过使用像zombie.js(任何其他替代方法)的node.js无头浏览器包和用于testingWeb应用程序的selenium浏览器。 我被node.js无头浏览器包所吸引,因为它比通过selenium驱动一个完整的浏览器更轻更快。 然而,没有一个无头浏览器节点包似乎支持JavaScript的HTML页面的精确呈现。 那么结合两全其美的呢? 恢复使用selenium来呈现zombie.js无法呈现的页面? 你如何去完成后者? 你需要知道什么时候页面没有在zombie.js上成功渲染,然后在selenium浏览器上激发页面。 但是,这不会造成等待selenium启动的滞后吗? 更重要的是,除了zombie.js,什么是最好的无头浏览器node.js包? 重点应放在页面渲染上。 你认为我们将来会看到一个node.js的无头浏览器包装代替selenium吗?

从WebDriverJS确定会话ID

我试图在浏览器上运行WebDriverJS,但是文档在如何控制主机浏览器方面有些模糊。 在这里,它说: 启动一个浏览器来对另一个浏览器运行一个WebDrivertesting是多余的(与简单地使用节点相比)。 相反,在浏览器中使用WebDriverJS旨在自动执行实际运行脚本的浏览器。 只要服务器的URL和浏览器的会话ID是已知的,就可以完成。 尽pipe这些值可能会直接传递给构build器,但也可以使用wdurl和wdsid“环境variables”来定义这些值,这些variables是从加载页面的URL查询数据中parsing出来的: <!– Assuming HTML URL is /test.html?wdurl=http://localhost:4444/wd/hub&wdsid=foo1234 –> <!DOCTYPE html> <script src="webdriver.js"></script> <input id="input" type="text"/> <script> // Attaches to the server and session controlling this browser. var driver = new webdriver.Builder().build(); var input = driver.findElement(webdriver.By.tagName('input')); input.sendKeys('foo bar baz').then(function() { assertEquals('foo bar baz', document.getElementById('input').value); }); </script> 我想从Node.js打开我的testing页面,然后运行包含在客户端脚本中的命令。 但是,我不知道如何能够提取会话ID(wdsid查询参数),当我build立会议。 有人有什么主意吗?

节点selenium-webdriver“错误:超时等待WebDriver服务器在”

在按照WebDriverJs文档的“入门”部分中的说明以及从其站点运行此片段之后: var driver = new webdriver.Builder(). withCapabilities(webdriver.Capabilities.chrome()). build(); driver.get('http://www.google.com'); driver.findElement(webdriver.By.name('q')).sendKeys('webdriver'); driver.findElement(webdriver.By.name('btnG')).click(); driver.wait(function() { return driver.getTitle().then(function(title) { return title === 'webdriver – Google Search'; }); }, 1000); driver.quit(); 我得到这个错误: Error: Timed out waiting for the WebDriver server at http://XXX.XXX.X.XXX:60065/ at <anonymous> at <anonymous> at <anonymous> at <anonymous> at <anonymous> at <anonymous> at <anonymous> at <anonymous> at […]

获取错误,而尝试运行seleniumwebdriver的示例testing

我试图在位于“\ node_modules \ selenium-webdriver \ example”的文件“google_search_test.js”中运行示例testing。 我正在使用webdriverjs,并且只在我的系统中安装了npm包“selenium-webdriver”。 我已经移动到命令提示符下的path位置并运行命令 node google_search_test.js 我收到如下错误, 错误说明: Path\node_modules\selenium-webdriver\example>node google_search_test.js Path\node_modules\selenium-webdriver\testing\index.js:184 exports.describe.skip = global.describe.skip; ^ TypeError: Cannot read property 'skip' of undefined at Object.<anonymous> (C:\Users\kanasra\Desktop\Jaguars\Automation Testing\N odeJs\node_modules\selenium-webdriver\testing\index.js:184:40) at Module._compile (module.js:456:26) at Object.Module._extensions..js (module.js:474:10) at Module.load (module.js:356:32) at Function.Module._load (module.js:312:12) at Module.require (module.js:364:17) at require (module.js:380:17) at Object.<anonymous> (C:\Users\kanasra\Desktop\Jaguars\Automation Testing\N odeJs\node_modules\selenium-webdriver\example\google_search_test.js:24:12) at […]

ChromeOptions使用Selenium ChromeDriver for node.js导致引用错误

我正在尝试使用Chrome的ChromeDriver驱动程序来运行一些使用Chrome的testing,但是当我使用ChromeOptions时候出现了一个引用错误。 我的代码 我想强制使用某些选项,例如针对特定的用户configuration文件进行testing。 基于Selenium和ChromeDriver文档,这是我的文件test.js : opt = new chromeOptions(); // ERROR OCCURS HERE! opt.setBinary("C:\\Program Files (x86)\\Google\\Chrome\\Application\\chrome.exe"); opt.addArguments("–user-data-dir=C:\\Users\\MyUserAccount\\AppData\\Local\\Google\\Chrome\\User Data"); driver = new ChromeDriver(opt); // rest of my script goes here 错误 我使用命令node test.js执行此操作。 这将在第一行中引发以下错误: \path\to\test.js:1 ction (exports, require, module, __filename, __dirname) { opt = new chromeOpti ^ ReferenceError: chromeOptions is not defined at Object.<anonymous> (\path\to\test.js:1:73) at […]

拒绝连接! selenium服务器启动了

我inheritance了一个没有文档的项目。 这是一个sails.js应用程序。 有一小组unit testing和一个端到端的testing。 当我尝试使用grunt运行端到端testing时。 我得到: $ grunt e2e Running "nightwatch" task started – PID: 5440 >> Executing "default" tests (standalone) [Index] Test Suite ================== Running: Should clean the collection removing 0 places >> Connection refused! Is selenium server started? 我不知道我可能会错过什么。 这让我坚持了一个多星期。 该项目有一个selenium服务器独立-2.40.0.jar在咕night声夜表。 所以我把这个PID是selenium服务器启动的。 如果我先启动jar(外面的咕噜声)我得到 $ grunt e2e org.openqa.grid.selenium.GridLauncher main INFO: Launching a standalone server […]