2017-10-08 6 views
1

J'ai épluché la documentation de (ce peu il y a) pour le sélénium-WebDriver situé ici (http://seleniumhq.github.io/selenium/docs/api/javascript/module/selenium-webdriver/index_exports_Capabilities.html)Selenium-WebDriver NodeJS équivalent à code Java pour DesiredCapabilities

Je ne peux pas savoir ce que le code équivalent de Java NodeJS serait.

Voici le code JAVA (que je copie d'ici à la section Options de configuration de test, 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"); 

En particulier, je veux définir la capacité « nom » donc je peux nommer mon tests avec Zalenium.

Comment faire cela dans NodeJS?

Ceci est mon code seldium webdriver actuel qui fonctionne (et a été modifié pour supprimer les informations sensibles) mais ne définit pas le nom du test. J'ai essayé ce .withCapabilities (webdriver.Capabilities.chrome(), {"name", "chrometest"}) et il compile mais je ne pense pas qu'il fasse quoi que ce soit?

//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!'); 

Répondre

2

Ok J'ai trouvé la réponse. Il s'avère que vous venez de le définir en tant que paramètres supplémentaires dans un objet.

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(); 

Espérons que cela soulage quelqu'un de frustration.