当脚本作为服务运行时,文件上载不在Jenkins中工作(Selenium / Java)

时间:2018-04-24 19:12:01

标签: java jenkins selenium-webdriver file-upload

我工作的应用程序需要文件上传。从Eclipse运行代码时,代码工作正常。当我在Jenkins(Windows服务)中运行相同的代码时。我得到,org.openqa.selenium.WebDriverException:无效参数:找不到文件错误消息

我们必须使用Jenkins作为服务的原因是因为网络组策略,我们无法让Jenkins从命令提示符运行。

我无法修复此问题,因为我不确定在浏览器不可见的情况下会出现什么情况

以下是我们从Jenkins运行代码时剪切上传文件和错误消息。

代码:

wait.until(ExpectedConditions.visibilityOfElementLocated(By.xpath(".//*[@id='textfield']")));
WebElement filePath = driver.findElement(By.xpath(".//*[@id='textfield']"));

filePath.sendKeys("\\\\XXXXXFOLDER\\data\\SHARED\\PCDEV\\STAFF\\QA_Staff\\ITL
\\FileForXXXXX\\XXX_XXXX_XXXXAPPS.txt");

Thread.sleep(5000);

//Step 8 - Verify user can click the Add File button and display the file name in the text box on the Send Files page

driver.findElement(By.xpath(".//* 
[@id='wrapper']/table[2]/tbody/tr[1]/td/table[1]/tbody/tr[4]/td[2]
/input[2]")).click();

错误消息:

org.openqa.selenium.WebDriverException:无效参数:

找不到档案: \\ XXXXXFOLDER \数据\ SHARED \ PCDEV \职工\ QA_Staff \ ITL \ FileForXXXXX \ XXX_XXXX_XXXXAPPS.txt

2 个答案:

答案 0 :(得分:0)

创建WebDriver后,只需在脚本中添加以下代码行。

driver.setFileDetector(new LocalFileDetector());

将预期文件从本地环境上传到远程环境会很有帮助。

答案 1 :(得分:0)

我遇到了同样的问题,我也尝试使用AutoIT和机械手输入功能,这对我也不起作用,但是通过使用sendKeys可以正常工作,给出xpath或输入标签的ID,也许是可行的

driver.findElement(By.xpath(“ // input [@ type ='file']”))。sendKeys(filePath);