2017-10-08 54 views
1

我已经走遍了文档(什么小有)对位于这里硒的webdriver(http://seleniumhq.github.io/selenium/docs/api/javascript/module/selenium-webdriver/index_exports_Capabilities.html硒的webdriver的NodeJS等同于Java代码DesiredCapabilities

我无法找出从Java等效代码NodeJS会。

这里是JAVA我想设置的功能的代码(我从这里复制的测试配置选项部分,https://github.com/zalando/zalenium/blob/master/docs/usage_examples.md#initial-setup

DesiredCapabilities desiredCapabilities = new DesiredCapabilities(); 
    desiredCapabilities.setCapability(CapabilityType.BROWSER_NAME, BrowserType.FIREFOX); 
    desiredCapabilities.setCapability(CapabilityType.PLATFORM, Platform.LINUX); 
    desiredCapabilities.setCapability("name", "myTestName"); 

特别是“名”,所以我可以说出我的Zalenium测试。

如何在NodeJS中执行此操作?

这是我当前的selnium webdriver代码,它工作(并被编辑以删除敏感信息)但未设置测试名称。我试过这个.withCapabilities(webdriver.Capabilities.chrome(),{“name”,“chrometest”}),它编译但我不认为它做任何事情?

//Run using this project (https://github.com/qmu/dockerfiles/blob/master/src/selenium-webdriver-node/example/bin/run) 

"use strict"; 

const webdriver = require('selenium-webdriver'), 
    By = webdriver.By, 
    until = webdriver.until, 
    test = require('selenium-webdriver/testing'); 

//const expect = require('expect.js'); 
const assert = require('assert'); 

var driver = new webdriver.Builder() 
    .withCapabilities(webdriver.Capabilities.chrome()) 
    .usingServer('http://localhost:4444/wd/hub') 
    .build(); 

console.log('starting chrome...'); 

driver.manage().timeouts().implicitlyWait(10 * 1000);//10 seconds 

driver.get('http://somewebsite.tech'); 
driver.findElement(webdriver.By.name('_username')).sendKeys('**'); 
driver.findElement(webdriver.By.name('_password')).sendKeys('**'); 
driver.findElement(webdriver.By.css("button")).click(); 
driver.quit(); 

//FIREFOX TESTS 
console.log('starting firefox...'); 

var driver = new webdriver.Builder() 
    .withCapabilities(webdriver.Capabilities.firefox()) 
    .usingServer('http://localhost:4444/wd/hub') 
    .build(); 

driver.manage().timeouts().implicitlyWait(30 * 1000);//10 seconds 

driver.get('http://somewebsite.tech/'); 
driver.findElement(webdriver.By.name('_username')).sendKeys('**'); 
driver.findElement(webdriver.By.name('_password')).sendKeys('**'); 
driver.findElement(webdriver.By.css("button")).click(); 
driver.quit(); 


console.log('all modules are ready!'); 

回答

2

好的,我找到了答案。原来你只是将它定义为对象中的额外参数。

var driver = new webdriver.Builder() 
    .withCapabilities({'browserName': 'chrome','name':'Chrome Test','tz':'America/Los_Angeles','build':'Chrome Build','idleTimeout':'60'}) 
    .usingServer('http://localhost:4444/wd/hub') 
    .build(); 

希望这可以节省一些人一些挫折。