我在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 ..)。 绝对路径对我没用。
建议??
答案 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);