Articles of selenium webdriver

使用selenium-webdriver和phantomjs在nodejs中设置用户代理

我需要更改我的PhantomJS浏览器的用户代理,它驱动着selenium-webdriver。 我find了在C#,Ruby和Java中更改用户代理的方法 这是我试过的: var webdriver = require('selenium-webdriver'); var useragent = "Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/41.0.2228.0"; var driver = new webdriver.Builder(). withCapabilities(webdriver.Capabilities.phantomjs("phantomjs.page.settings.userAgent", useragent)). build(); Mozilla/5.0 (Windows NT 6.2; WOW64) AppleWebKit/534.34 (KHTML, like Gecko) PhantomJS/1.9.7 Safari/534.34

向Selenium Webdriver网格发出并行请求

我试图使用selenium服务器网格并行运行多个命令。 这是我的第一个testing代码: var webdriver = require('selenium-webdriver'); for(var u = 0; u < 3; u++) { makeScreenshot('foo/test' + u + '.png'); } function makeScreenshot(path) { var driver = new webdriver.Builder().forBrowser('firefox').usingServer('http://someurl:44111/wd/hub/').build(); console.log('Get'); driver.get('http://www.somepage.com').then(function() { console.log('Screenshot'); driver.takeScreenshot().then(function(data){ console.log(path); //var decodedImage = new Buffer(data, 'base64') driver.quit(); }); }); } 结果是: Get Get Get Screenshot foo/test0.png Screenshot foo/test1.png Screenshot foo/test2.png […]

量angular器无法parsingconf.js

我正在使用量angular器为e2etesting我的angular应用程序,但得到: TypeError:调用“量angular器conf.js”时,对象#没有方法“parsing” 这里是conf文件的内容: exports.config = { seleniumAddress: 'http://localhost:4444/wd/hub', capabilities: { 'browserName': 'chrome' }, specs: ['HomePageCtrl_spec.js'], chromeOnly: true, jasmineNodeOpts: { onComplete: null, isVerbose: false, showColors: true, includeStackTrace: true } }; 这里是我正在运行这个命令的例外: E:\eCOIGit\sidhome\SidHome\SidHome.Tests\ng-test-e2e>protractor Conf.js 错误: C:\ Users \ xqwt \ AppData \ Roaming \ npm \ node_modules \ protractor \ node_modules \ q \ q.js:12 6 throw […]

WebDriverJs的资源?

我知道有以下资源: http://docs.seleniumhq.org/docs/03_webdriver.jsp https://code.google.com/p/selenium/wiki/WebDriverJs 但我想知道是否有一个WebDriverJs的整个API的网站。 我在哪里可以find可用的方法和具体参数发送? 类似于: http : //rubydoc.info/gems/watir-webdriver/frames

Selenium&webdriver.io如何使用executeScript?

我试图用Selenium,W​​ebDriver.io和Node.js(用Mocha)来testing一个简单的表单。 所以我有这样的东西: var webdriverio = require('webdriverio'); var expect = require('expect'); describe('Test form', function(){ beforeEach(function() { browser.url('/'); }); it('should save object', function() { expect(browser.executeScript('return window.data;')).to.be([]); }); afterEach(function() { if (this.currentTest.state !== "passed") { browser.saveScreenshot(); } }); }); 我的wdio.conf.js : var selenium = require('selenium-standalone'); var seleniumServer; exports.config = { host: '127.0.0.1', port: 4444, specs: [ 'test/*.spec.js' ], […]

如何使用WebdriverIO上传文件

我试图从WebdriverIO中将以下代码从selenium-webdriver gem移植到Node.js中: @webdriver.navigate.to "https://imgur.com/upload" element = @webdriver.find_element(:id, 'global-files-button') element.send_keys("C:\\test\\image.png") 正如你所看到的代码非常简单:导航到一个URL,findinput,设置文件path,并按预期工作selectfile upload。 这是我移植的版本: describe('User can upload', () => { it('select file', () => { browser.url("https://imgur.com/upload"); browser.waitForExist('#global-files-button'); $('#global-files-button').keys("C : \\ test \\ image . png".split(" ")); }); }); 不幸的是,这个testing没有设置path,我一直无法find一个像这样用wdio上传文件的工作示例,文档让我猜测。 任何build议非常感谢。 我知道都select文件和uploadFile,但我正在与云平台运行我的wdiotesting,他们似乎并不可靠的工作。

当Angular不可用时,如何等待一个元素与量angular器可见?

我有一个用于量angular器testing的login函数,它看起来像这样: var config = require("../helpers/config.js"); var login = function() { browser.driver.get(config.dsp.url); browser.driver.findElement(by.name("userName")).sendKeys(config.dsp.user); browser.driver.findElement(by.name("password")).sendKeys(config.dsp.password); return browser.driver.findElement(by.name("submit")).click().then(function() { return browser.driver.wait(function() { return browser.driver.isElementPresent(browser.driver.findElement(by.className("sample-class-name"))); }, 360000); }); } module.exports = login; 我不能使用任何量angular器特定的钩子,因为在这个页面上没有使用Angular,所以我必须使用底层的webdriver API。 问题是,我似乎无法弄清楚如何等待,直到一个元素是可见的使用这个包装的webdriver对象。 任何帮助,将不胜感激。

我们如何阻止webdriver-manager?

我正在使用npm包webdriver-manager在机器上启动驱动程序。 如果驱动程序已经启动,则失败。 有没有一种方法可以停止并重新启动webdriver? 或者,如果已经开始忽略的东西?

在docker容器中运行nodeJS应用程序,selenium和webdriver.iotesting

我正在尝试使用我的节点应用程序进行一些webdriver.iotesting,这是一个泊坞窗图像。 所以我到目前为止做的是: 1)通过在我的ubuntu服务器上运行这个来获取selenium服务器: $ docker run -p 4444:4444 selenium/standalone-chrome 这给了我运行的容器'ubuntu_selenium_1'( $ docker ps docker $ docker ps ) 2)构build节点应用程序docker image,在后台运行节点应用程序,并运行e2e.jstesting文件 在我的gitlab-ci.yml中,我正在做 – docker build -t core:test -f Dockerfile.testing . – docker run –rm core:test 这不会给我任何输出。 没有预期的标题和错误消息。 那么我做错了什么? 有一个正在运行的selenium服务器,有后台加载的节点应用程序,启动e2e.jstesting文件。 我错过了nodeJS应用程序,webdriver和selenium的连接… Dockerfile.testing FROM core:latest # Copy the test files COPY docker-entrypoint.sh / COPY e2e.js / # Get […]

如何将量angular器的承诺转换为浮点数

我正在使用量angular器写e2etesting,我想检查页面上的某些值是否正确计算。 这样的事情很简单: var var1 = element(by.binding('var1')); var var2 = element(by.binding('var2')); var var3 = element(by.binding('var3')); expect(parseFloat(var1.getText())).toEqual(parseFloat(var2.getText()) + parseFloat(var2.getText())); 但是,因为var1,var2和var3都是承诺,所以这是行不通的。 有没有办法将promise对象转换为string,以便我可以做出上述的工作?