2013-03-26 27 views
0

我想在selenium webdriver code的幫助下上傳圖片。任何人都可以幫助我。我將在我的應用程序中提供上傳圖片的步驟。Selenium上傳圖片

  1. 在我的應用程序中「瀏覽」按鈕顯示在創建屏幕上。
  2. 點擊瀏覽按鈕窗口頁面後會顯示。
  3. 我必須從窗口中選擇一個圖像,然後單擊打開。
  4. 它將重定向到我的應用程序與在圖像字段中選擇的圖像的名稱。
  5. 圖像字段不可編輯(它將採用您選擇的圖像的名稱)。

    我可以點擊帶有硒代碼的瀏覽按鈕。

這纔是我的問題:紗窗是opened.But我不能能夠交互(選擇一個圖像,然後單擊打開按鈕),在窗口頁面,因爲沒有firepath。

任何人都可以儘快幫我解決問題嗎?

回答

0

使用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. 
+0

我試圖UR code.WebElement點擊=(driver.findElement(By.id( 「bckBlack」))); \t click.click(); \t嘗試{ \t \t \t過程proc等於調用Runtime.getRuntime()EXEC(「C:\\用戶\\ f.gandhi.mohanam \\ seleniumworkspace \\ uploaderhandler。exe文件「); \t \t}趕上(IOException的發送){ \t \t \t // TODO自動生成的catch程序塊 \t \t \t e.printStackTrace(); \t \t} \t \t driver.manage()超時().implicitlyWait(10L,TimeUnit.SECONDS); \t \t driver.findElement(By.xpath(「// * [@ id ='save']」))。click(); – Feroze 2013-03-27 05:53:13

0

看看這篇博客,它幫助我。

Uploading Files in Remote WebDriver

它可以同時使用本地或遠程的webdriver。現在我有它在Chrome,IE和Firefox上工作。我不相信它適用於Safari驅動程序。

0

試試這個:

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