2017-05-10 4 views
0

Ich benutze Selen-Webdriver mit node.js (Javascript) unter Chrome.Selenium Webdriver: Wie Datei mit seinem relativen Pfad (Javascript) hochladen

In einigem Test, ich habe eine Datei mit dem relativen Pfad laden (meine Datei ist als die Testdatei in demselben Verzeichnis zu laden)

var fileInput = driver.findElement(webdriver.By.xpath('//*[@id="j_idt69:j_idt70_input"]')); 
fileInput.sendKeys('./file.xml'); 

Seltsamer mein Test nicht besteht, und ich diesen Fehler zu fangen :

My error handler... WebDriverError: unknown error: path is not absolute: 

in der Tat einen relativen Pfad ist mit weil mein Test in differents Standorten werden intented verwendet (VMs, jenkins, pc ..). und der absolute Pfad ist nicht nützlich für mich.

Vorschläge?

+0

wie über einen absoluten Pfad dynamisch ermitteln, und sie verwenden? –

+0

'./file.xml' Mewans Ihre Datei ist im Projektverzeichnis, ist es so? – kushal

+0

@Kushal: Ja ist es – firasKoubaa

Antwort

0

ich habe es auf diese Weise gelöst:

den absoluten Pfad dynamisch zu erfassen und verketten es mit meinem Dateinamen:

Um den aktuellen Verzeichnispfad mit diesem Knoten Befehl zu erkennen: process.cwd()

Der resultierende Pfad lautet:var path = process.cwd()+'/file.xml';

Upload Aktion:fileInput.sendKeys(path);

1

sendKeys nicht unterstützen relativen Pfad als Argument.

Verwenden Sie System.getProperty("user.dir"), um den aktuellen Arbeitsverzeichnispfad abzurufen.

String path=System.getProperty("user.dir") 
fileInput.sendKeys(path+"\\file.xml");