【问题标题】:Selenium upload imagesSelenium 上传图片
【发布时间】:2013-03-26 11:34:27
【问题描述】:

我想在 selenium webdriver 代码的帮助下上传图片。任何人都可以帮助我。我将提供在我的应用程序中上传图片的步骤。

  1. 在我的应用程序中,“浏览”按钮显示在创建屏幕中。

  2. 点击浏览按钮后会显示窗口页面。

  3. 我必须从窗口中选择一张图片并点击打开。

  4. 它将使用在图像字段中选择的图像名称重定向到我的应用程序。

  5. 图像字段不可编辑(它会使用您选择的图像的名称。)。

    我可以使用 selenium 代码点击浏览按钮。

我的问题来了:窗口屏幕已打开。但我无法在窗口页面中进行交互(选择图像并单击打开按钮),因为没有火路。

谁能尽快帮我解决?

【问题讨论】:

    标签: java selenium


    【解决方案1】:

    试试这个:

    driver.findElement(By.id("btn_Browse")).click(); 
    driver.findElement(By.id("logo")).sendKeys("c:\\ Image.jpg");
    

    【讨论】:

      【解决方案2】:

      在使用 selenium 时使用 Autoit 处理文件上传窗口。请按照以下步骤操作。

      1) 下载Autoit并安装。

      2) 然后在记事本中写下以下代码。将以下代码中的文件路径更改为您尝试从 selenium 脚本上传的文件路径。另存为uploadhandler.au3。注意扩展名应该是au3。

      WinActivate("Choose file");
      Local $file = "c:\yourpath\howtoupload.doc"
      ControlSetText("Choose file", "", "Edit1", $file )
      ControlClick("Choose file", "", "Button2")
      

      3) 右键单击​​已保存的脚本文件,然后从上下文菜单中单击“编译脚本”。这将生成uploadhandler.exe 文件。

      4) 将此 uploadhandler.exe 文件放在本地驱动器中,并在 selenium-java 代码中运行此 exe 文件,无论您需要使用以下代码上传文件。

      Process proc = Runtime.getRuntime().exec("C:\\path for your exe file\\uploadhandler.exe");
      

      例如:-

      driver.findelement(byid("browse")).click();
      Process proc = Runtime.getRuntime().exec("C:\\path for your exe file\\uploadhandler.exe");
      //rest of your selenium code continues here.
      

      【讨论】:

      • 我试过你的代码。WebElement click=( driver.findElement(By.id("bckBlack"))); click.click();尝试 { Process proc = Runtime.getRuntime().exec("C:\\Users\\f.gandhi.mohanam\\seleniumworkspace\\uploaderhandler.exe"); } catch (IOException e) { // TODO 自动生成的 catch 块 e.printStackTrace(); } driver.manage().timeouts().implicitlyWait(10L, TimeUnit.SECONDS); driver.findElement(By.xpath("//*[@id='save']")).click();
      【解决方案3】:

      看看这篇博文,它对我有帮助。

      Uploading Files in Remote WebDriver

      它可以使用本地或远程 webdriver。现在我可以在 Chrome、IE 和 Firefox 上运行它。我不相信它适用于 Safari 驱动程序。

      【讨论】:

        猜你喜欢
        • 2013-10-12
        • 2023-03-13
        • 2015-06-03
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2023-01-10
        • 1970-01-01
        • 2012-01-29
        相关资源
        最近更新 更多