2017-10-08 19 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(); 

希望這可以節省一些人一些挫折。