Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/image/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用Selenium WebDriver(Java)上载本地映像_Java_Image_Selenium_Input_Upload - Fatal编程技术网

使用Selenium WebDriver(Java)上载本地映像

使用Selenium WebDriver(Java)上载本地映像,java,image,selenium,input,upload,Java,Image,Selenium,Input,Upload,我看了很多答案,只找到了一些有用的地方,所以基本上我使用selenium选择页面上的文件输入,然后执行一些javascript使其可见,然后将文件路径发送到键 所有这些都有效,但当我提交表单时,图像不会显示在最终产品上,例如,当我单击提交并查看我的帖子时,没有图像 这是我的密码: WebElement imageUpload = driver.findElement(By.xpath(("//*[@id=\"FileInputWrapper\"]/input"))); Thread.sl

我看了很多答案,只找到了一些有用的地方,所以基本上我使用selenium选择页面上的文件输入,然后执行一些javascript使其可见,然后将文件路径发送到键

所有这些都有效,但当我提交表单时,图像不会显示在最终产品上,例如,当我单击提交并查看我的帖子时,没有图像

这是我的密码:

WebElement imageUpload = driver.findElement(By.xpath(("//*[@id=\"FileInputWrapper\"]/input")));
    Thread.sleep(600);
    js.executeScript("arguments[0].setAttribute('type', 'file');", imageUpload);
    Thread.sleep(600);
    imageUpload.sendKeys(computerHome + "/downloads/testImageFolder/testImage.jpg");
    Thread.sleep(600);
Selenium执行此操作后,将在“提交图像”按钮上方显示:

这意味着它收到了我的图片,但出于某种原因,它也没有收到? 因为当我在帖子上点击提交时,图像不可见,没有图像

任何想法都非常感谢


谢谢。

下面的方法也将帮助您浏览文件并选择它。只需传递3个必需的参数

  • 元素类型
  • 元素定位器
  • 文件路径/资源
  • 代码如下:

    /*-------    FileUploading(): This method browse and the upload the selected file    -------*/
        public static void FileUpload(PropertyType ElementType, string Element, string FilePath)
        {
            if (ElementType == PropertyType.Id)
            {
                PropertyCollection.wdriver.FindElement(By.Id(Element)).Click();
            }
            else if (ElementType == PropertyType.XPath)
            {
                PropertyCollection.wdriver.FindElement(By.XPath(Element)).Click();
            }
    
            Thread.Sleep(3000);
            SendKeys.SendWait(FilePath);
            Thread.Sleep(3000);
            SendKeys.SendWait(@"{Enter}");
            Thread.Sleep(3000);
         }
    

    你能给我们展示一下相关的HTML块吗?一个正常工作,一个不正常工作?既然它是空的,为什么我们还需要第二个呢?