Tag: selenium webdriver

WebdriverJS / IO&PhantomJS – 使用属性select器的Click处理程序不能与PhantomJS一起使用

我目前正在用WebdriverJS和PhantomJS编写一个应用程序testing套件。 为了确保我的testing工作,我首先通过Chrome运行它们,并且它们都正常工作。 当我换出PhantomJS的Chrome时,testing会中断。 这个问题 – WebDriver PhantomJS无法find元素,但与Firefox工作正常似乎概述了一个非常类似的问题,但附带的解决scheme似乎没有帮助。 下面是一个在Chrome上可以使用的types的简单例子,但不是PhantomJS上的例子: var client = webdriverjs.remote({ desiredCapabilities: { browserName: 'chrome' }, logLevel: 'silent' }); client.waitForExist("[data-id='1568911']", function(e){ client.click("[data-id='1568911']", function(e){ assert(!e, "Should click on a specific element:" + element); }); }); 在PhantomJS上运行时,我显然首先更改WebdriverJS选项: var client = webdriverjs.remote({ desiredCapabilities: { browserName: 'phantomjs', 'phantomjs.binary.path': "path/to/phantomjs" }, logLevel: 'silent' }); 但是当我运行testing并将logLevel设置为“详细”时,我收到如下所示的错误消息: [12:43:34]: COMMAND POST "/wd/hub/session/eb2b0a4b-e659-4607-bec0-82209bd6539a/element" […]

如何在执行完所有testing用例之后closures浏览器,或者使用带有angularjs的selenium服务器的量angular器testing用例失败之后

我能够使用angularjs使用selenium服务器运行与量angular器testing用例 我想在执行所有testing用例之后closures浏览器,或者在testing用例失败后closures浏览器, 我能够通过在最后一个testing用例中写入browser.close()来实现这一点,但是如果testcase失败,那么这样做是行不通的,在这种情况下是否还有其他方式来closures浏览器,或者是否有任何不同的名称afterEach ? 提前致谢。

量angular器“无法读取属性”点击“未定义的”

我不能点击一些CSS定位器来操纵他的“math地板”。 请你帮忙。 这个testing的CSS部分: <input ng-attr-id="industry_{{$index}}" ng-attr-value="{{$index}}" ng-model="stateData.currentIndustryIndex" type="radio" class="ng-pristine ng-valid" name="00K" id="industry_0" value="0"> 这是我的testing – it ('onboarding – screen 2', function() { browser.driver.wait(by.css('.industry input[type="radio"]'), 10000); element (by.css('.industry input[type="radio"]'))[Math.floor(Math.random() * (12 – 0 + 1))].click(); //element(by.css("li.ng-scope.icon-laptop > label.ng-binding")).click(); browser.driver.sleep(1000); //element(by.xpath("//div[1]/div/main/div[3]/section/div/form/div[1]/section[2]/div/ul/li[4]/label")).click(); browser.driver.sleep(2000); //element(by.css('input.btn')).click(); browser.driver.sleep(3000); //Capture Screenshoot browser.driver.takeScreenshot().then(function(data){ var base64Data = data.replace(/^data:image\/png;base64,/,""); var fs = require("fs"); fs.writeFile("onboarding-screen2.png", base64Data, […]

在Selenium WebDriverJS中使用getWindowHandles时出错

有一个问题非常类似于如何做我想做的事情,但答案不适合我。 我没有足够的声望评论或要求澄清。 我正在使用JavaScript和WebDriverJS与NodeJS 我试图切换到一个新的窗口,只是打开一个目标= _blank链接。 我似乎已经解决了driver.getWindowHandles()给我一个错误的问题。 修剪Node js文件: var webdriver = require("selenium-webdriver"); var driver = new webdriver.Builder().usingServer().withCapabilities({'browserName': 'chrome' }).build(); driver.get('https://www.google.com'); driver.getTitle().then(function (title) { console.log(title); var handles = driver.getWindowHandles(); }); driver.getTitle().then(function (title) { console.log(title); }); 这是我的命令行看起来像: C:\selenium>node test2.js Google C:\selenium\node_modules\selenium-webdriver\lib\goog\async\nexttick.js:39 goog.global.setTimeout(function() { throw exception; }, 0); ^ TypeError: undefined is not a function at C:\selenium\test2.js:8:23 at […]

Protractor JS不能在IE11上运行多合并testing

我想通过Protractor 2.0在Node.JS上运行Selenium的跨浏览器testing。 FF和Chrome的实例运行正常,只有IE11没有打开。 当我尝试了它,我得到错误如下: c:\automation\tests>protractor conf.js [launcher] Running 3 instances of WebDriver ———————————— [internet explorer #3] PID: 8904 [internet explorer #3] Specs: c:\automation\tests\message.js [internet explorer #3] [internet explorer #3] Using the selenium server at http://localhost:4444/wd/hub [internet explorer #3] ERROR – Unable to start a WebDriver session. [internet explorer #3] [internet explorer #3] C:\Users\idan\AppData\Roaming\npm\node_modules\protractor \node_modules\selenium-webdriver\lib\atoms\error.js:113 [internet […]

如何在NodeJS WebDriver中切换窗口?

当没有getWindowHandles()函数时,如何获得在WebDriverJS中打开的新窗口的窗口句柄? 我需要切换到一个新的窗口来loginFacebook进行testing。

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 […]

使用selenium webdriverjs运行摩卡testing时不太有用的callstack

在使用JavaScript的selenium webdriver在mocha中运行testing时,调用堆栈并不是很有帮助。 作为一个简单的例子,我使用了以下简单的testing脚本test.js : var webdriver = require('selenium-webdriver'), test = require('selenium-webdriver/testing'); const TIMEOUT = 30000; test.describe('selenium webdriverjs', function () { var driver; this.timeout(TIMEOUT); test.before(function () { driver = new webdriver.Builder().withCapabilities(webdriver.Capabilities.firefox()).build(); driver.manage().timeouts().pageLoadTimeout(TIMEOUT); }); test.after(function () { driver.quit(); }); test.it('error stack', function () { driver.get('http://www.google.com'); driver.findElement(webdriver.By.id('doesnotexit')); }); }); (例如)从Gulp运行时,会生成以下错误堆栈: selenium webdriverjs 1) error stack 0 passing (4s) […]

Selenium + Firefox:我怎样才能同时使用Firefox二进制规范和Firebug扩展?

目前我正在使用下面的代码。 var co = require('co'); var WebDriver = require('selenium-webdriver'); var SeleniumServer = require('selenium-webdriver/remote').SeleniumServer; co(function *() { // async var server = new SeleniumServer('/path/to/selenium', { port: 4444, jvmArgs: ['-Dwebdriver.firefox.bin=path/to/firefox'] // Firefox binary specification }); yield server.start(); // await var driver = new WebDriver .Builder() .usingServer(server.address()) .withCapabilities(WebDriver.Capabilities.firefox()) .build(); }); 现在我需要添加Firebug扩展来提取networkingstream量为*.har文件。 我googlesearch到这个 : var firefox = require('selenium-webdriver/firefox'); var […]

不能点击一个divbuttonseleniumwebdriver

var webdriver = require('selenium-webdriver'); var driver = new webdriver.Builder(). withCapabilities(webdriver.Capabilities.chrome()). build(); driver.get('https://www.tumblr.com/login'); driver.findElement(webdriver.By.id('signup_email')).sendKeys('my_username'); driver.findElement(webdriver.By.id('signup_password')).sendKeys('my_password'); driver.findElement(webdriver.By.id('signup_forms_submit')).click(); driver.wait(function(){ driver.get('https://www.tumblr.com/search/love+gifs'); },5000); driver.wait(function(){ driver.findElement(webdriver.By.id("post_control like")).click(); },1000); driver.wait(function(){ driver.findElement(webdriver.By.id("follow-text")).click(); },1000); driver.quit(); <div class="post-info-post-tumblelog"> <div class="post-info-tumblelog"> <a class="follow_link worded-follow-button show-unfollow" data-subview="follow" href="/follow/pleasingpics" style="width: 41px;"> <div class="follow-text" title="Follow">Follow</div> <div class="unfollow-text" title="Unfollow">Unfollow</div> </a> </div> </div> 我有一个Javascript代码,用于使用Selenium WebDriver在Tumblr上关注一些帐户。 在HTML代码中,有一个关注button,您可以在名为“follow-text”的类中看到。 但我的代码不起作用,我也想知道buttonbutton实际上不是一个button,但他们已经使它成为一个可点击的div类。 我不太熟悉HTML / CSS,而且我是新的Javascript和Selenium Webdriver。 […]