Selenium Webdriver:如何使用他的相对路径上传文件(javascript)

时间:2017-05-10 08:58:22

标签: javascript node.js selenium selenium-webdriver

我在chrome下使用带有node.js(javascript)的 selenium webdriver。

在某些测试中,我必须使用他的相对路径上传文件(我上传的文件与测试文件位于同一目录中)

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

奇怪的是我的测试失败了,我发现了这个错误:

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

实际上正在使用相对路径,因为我的测试旨在用于不同的位置(VM,jenkins,pc ..)。 绝对路径对我没用。

建议??

2 个答案:

答案 0 :(得分:1)

sendKeys不支持相对路径作为参数。

使用System.getProperty("user.dir")获取当前工作目录路径。

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

答案 1 :(得分:1)

我已经这样解决了:

动态检测绝对路径并用我的文件名连接:

使用此节点命令检测当前目录路径process.cwd()

生成的路径为: var path = process.cwd()+'/file.xml';

上传操作: fileInput.sendKeys(path);