【发布时间】:2014-02-10 22:14:47
【问题描述】:
重现步骤:-
转到:-
用户名:- softwaretesting805@gmail.com 密码:- 1Selenium@
搜索并申请任何工作并转到附件页面,然后单击添加按钮。 我在这里无法通过 Selenium 上传任何文件。
1) 我正在使用 sendkeys 来回答 docType 和 docName 问题。
2) Browse 元素在表单中,所以我首先使用 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();
}
}
非常感谢任何帮助。
谢谢!
【问题讨论】:
-
这里列出了多种解决方案stackoverflow.com/q/9726005/2504101
标签: javascript forms file-upload selenium selenium-webdriver