Selenium Webdriver文件上载错误元素ice:inputFile

Selenium Webdriver文件上载错误元素ice:inputFile,file,selenium,upload,webdriver,File,Selenium,Upload,Webdriver,这是我的第一篇帖子,很抱歉再次问同样的问题。我遇到了一个关于在Selenium Web驱动程序中上载文件的问题。我在这个论坛上搜索了很多内容,但这些解决方案对我来说并不适用。作为文件浏览按钮的元素嵌入在文件文本区域(即通过文件浏览对话框浏览后打印文件路径的位置),但上载按钮是单独的 整个元素代码为: 我无法使用click()方法单击“浏览”按钮。我也尝试过使用Autoit/Robot JSP页面中元素的代码: 我知道输入类型是file,所以sendkeys()应该可以工作。我一直在尝试的代码

这是我的第一篇帖子,很抱歉再次问同样的问题。我遇到了一个关于在Selenium Web驱动程序中上载文件的问题。我在这个论坛上搜索了很多内容,但这些解决方案对我来说并不适用。作为文件浏览按钮的元素嵌入在文件文本区域(即通过文件浏览对话框浏览后打印文件路径的位置),但上载按钮是单独的

整个元素代码为:

我无法使用click()方法单击“浏览”按钮。我也尝试过使用Autoit/Robot

JSP页面中元素的代码:

我知道输入类型是file,所以sendkeys()应该可以工作。我一直在尝试的代码是:

WebElement elem=driver.findElement(By.xpath(//input[@name='upload']);
元素sendKeys(“”)

错误消息显示为:
org.openqa.selenium.remote.ErrorHandler$UnknownServerException:找不到元素:{“方法”:“xpath”,“选择器”:”//input[@name='upload']”}


请让我知道我的错误在哪里。提前感谢。

请确认输入元素是可见的

不要点击浏览按钮,它将打开一个系统级对话框来上传文件&在selenium中处理这个问题非常繁琐

您可以使用以下方法:

驱动程序。查找元素(:id,'videoupload')。发送密钥(“E:\\video.flv”)

请检查代码中的“\\”

请记住,只有当您发送文件的元素应为表单中的元素时,上传才会起作用

希望这对你有用


干杯

使用SendKeys上传文件

FirefoxDriver driver = new FirefoxDriver();

driver.get("URl");

File file=null;

try
{
file=new File("file path");
}

catch(Exception e)
{
e.printStackTrace();
}

Assert.assertTrue(file.exists());

WebElement browserButton=driver.findElement(By.id("button Id"));

browserButton.sendkeys(file.getAbsolutePath());

如果元素只是不可见的,那么它就会被找到,但您将无法与它交互。通常的解决方案是四处寻找帧

然后,您将能够找到元素并以通常的方式上载文件(请使用此处其他答案描述的
sendKeys()
方法)。

尝试以下代码:

driver.FindElement(By.XPath("/html/body/div[2]/div[5]/div/div/div/div[2]/div[2]/div[1]/div/div[1]")).click();

感谢@Sidram Waghmare的回复。这是页面的完整形式:。你能确认元素是否隐藏吗?如果是,是否有任何解决办法来实现自动化?您好,avishek,是的,您的输入元素是隐藏的,因为在您的代码中,它清楚地显示了input type=“hidden”。上述代码仅在输入元素可见且不应隐藏时才起作用。一个善意的建议是,从下次开始,请将您的代码粘贴到脚本中。这将有助于我们更好地理解……)谢谢@Sidram,顺便问一下,有什么办法可以让这一切自动化吗?请提及,如果您可以给任何指针,因为我被困在这个文件上传部分的自动化。我和一位开发人员谈过,他说元素的属性不是由他们设置的,而是他们使用的框架自动设置的。谢谢你的回答,但是你能检查我上传的元素标签吗,并检查这是否适用于你的代码。我认为你的代码是防白痴的,比我分享的代码更正确。但目的是一样的,效果也是一样的。但我无法找到元素本身。如果您能在这方面提供更详细的信息,我将不胜感激。如您所见,输入类型为file,因此单击将不起作用..我修改代码如下:file=null;尝试{file=new file(“D:\\AD\\Prac\\Prac\\002 EditPrac Add Person Error.xml revHEAD.svn000.tmp.xml”);}catch(异常e){e.printStackTrace();}Assert.assertTrue(file.exists());WebElement browserButton=driver.findElement(By.className(“iceInpFileTxt”);browserButton.sendKeys(文件.getAbsolutePath());-但它仍然给出了未找到的相同错误元素。我也尝试过使用xpath,但也不起作用。请各位指教,,