[英]File Upload functionality of Selenium web driver not working through sendkeys
重現步驟:-
去 :-
用戶名:- softwaretesting805@gmail.com 密碼:- 1Selenium@
搜索並申請任何工作並轉到附件頁面,然后單擊添加按鈕。 我無法在這里通過 Selenium 上傳任何文件。
1) 我正在使用 sendkeys 來回答 docType 和 docName 問題。
2)瀏覽元素在表單中,所以我首先使用sendkeys發送文件路徑,然后在表單元素上調用提交函數。
3)之后我點擊上傳按鈕。
問題似乎在於處理瀏覽按鈕,在 chromedriver 中,如果我轉到瀏覽選項卡,手動瀏覽文件,然后通過代碼運行其余部分,則文件成功上傳。
我正在使用下面的代碼來瀏覽和上傳。
List<WebElement> attachButtons = driver.getDriver().findElements(By.xpath("//input[@type=\"file\"]"));
for (int i = 0; i < 5; i++)
{
if (attachButtons != null && attachButtons.size() > 0 && attachButtons.get(0).isDisplayed())
{
attachButtons.get(0).sendKeys("/home/user/path/to/file");
SeleniumUtils.pause(1 * 1000);
List<WebElement> formElements = driver.getDriver().findElements(By.tagName("form"));
if(formElements != null && formElements.size() > 0)
{
formElements.get(0).submit();
}
break;
}
SeleniumUtils.pause(3 * 1000);
}
List<WebElement> uploadButtons = driver.getDriver().findElements(By.xpath("//a[@ct=\"B\"]"));
if (uploadButtons != null && uploadButtons.size() > 0)
{
WebElement uploadButton = null;
for(WebElement button : uploadButtons)
{
if(button.isDisplayed() && button.getText().contains("Upload"))
{
uploadButton = button;
break;
}
}
if(uploadButton != null)
{
uploadButtons.get(0).click();
}
}
任何幫助是極大的贊賞。
謝謝!
我遇到了類似的問題。 它已通過使用 getAbsolutePath 解決。 試試下面的代碼,看看它是否有幫助。
File file = new File("/home/user/path/to/file");
attachButtons.get(0).sendKeys(file.getAbsolutePath());
另一種方法是使用 java 腳本。 你可以使用 JavaScriptExecutor,如下:
String jsScript = "var input = document.getElementsByTagName('input')[0];"
+"input.value='/home/user/path/to/file';";
JavascriptExecutor executor = (JavascriptExecutor)driver;
executor.executeScript(jsScript);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.