1

測試是上傳文件,但問題是該元素已隱藏。我使用了JavaScript來使元素可見(請參閱下面的代碼)。當我在本地機器上執行代碼時,代碼完美工作。但是,當我將腳本集成到jenkins管道中並且現在使用硒網格中的鉻進行執行時,會導致錯誤。 「不是絕對路徑」。 注意:這不是文件位置的問題,因爲我們正在發送一個字符串。該錯誤指向該元素。Selenium - 啓用elementusing javascript在Jenkins中不起作用

// Hidden Upload File TextBox 
public static void uploadFileDropZoneJS(String file) { 
    WebElement elem = Browser.driver.findElement(By.xpath("//input[@type='file']")); 
    String js = "$(\"input[type='file']\").appendTo('.bulk-uploader');$(\"input[type='file']\").removeClass('dz-hidden-input');$(\"input[type='file']\").css({'visibility':'visible','z-index':'100','position':'relative','width':'300px','height':'20px'});"; 

    ((JavascriptExecutor) Browser.driver).executeScript(js, elem); 
    elem.sendKeys(file); 
} 

回答

0

你能發佈錯誤嗎?我們有一個類似的問題,那就是我們的測試在Windows機器上本地運行,但是當通過Jenkins在Linux VM上運行測試時,文件路徑更改爲相對於Jenkins工作區。小的調整來查找文件相對於我們的工作區,一切都很好。

+0

Hello Deon,錯誤不是因爲絕對文件位置/文件名。錯誤是找不到的元素。 sendKeys只是發送一個字符串到文本框。我確認這個問題是因爲使元素可見的JavaScript不起作用。爲了這個疑問,這是我發送的字符串:public static String uploadFilepath = System.getProperty(「user.dir」)+「\\ src \\ main \\ resources \\ File \\ file.xls」 ; – Gil

+0

這是控制檯中的錯誤:org.openqa.selenium.WebDriverException: 未知錯誤:路徑不是絕對路徑:/ home/ec2-user/test-build-develop-de/SourceCode/AutoTest/src/main/resources /File/file.xls – Gil

+0

我添加了一個日誌來發送sendKeys後打印文本,但它沒有顯示日誌。這意味着問題是元素沒有互動。 – Gil