2017-10-08 1 views
1

ich die Dokumentation gescheuert haben (was wenig ist) für Selen-WebDriver hier befindet (http://seleniumhq.github.io/selenium/docs/api/javascript/module/selenium-webdriver/index_exports_Capabilities.html)Selen-WebDriver NodeJS Entspricht Java-Code für DesiredCapabilities

ich nicht, was der entsprechende Code von Java herausfinden können, zu NodeJS wäre.

Hier ist der Code in JAVA (was ich von hier an der Testkonfiguration Abschnitt Optionen kopiere, 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"); 

Insbesondere ich die Fähigkeit „name“, so kann ich nennen einstellen möchte, dass meine Tests mit Zalenium.

Wie mache ich das in NodeJS?

Dies ist mein derzeitiger Selnium-Webdriver-Code, der funktioniert (und bearbeitet wurde, um vertrauliche Informationen zu entfernen), aber er setzt den Testnamen nicht. Ich habe versucht, dies. WithCapabilities (webdriver.Capabilities.chrome(), {"Name", "ChromeTest"}) und es kompiliert, aber ich glaube nicht, dass es nichts?

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

Antwort

2

Ok ich fand die Antwort. Es stellt sich heraus, dass Sie es nur als zusätzliche Parameter in einem Objekt definieren.

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

Hoffe das spart jemand Frustration.