2013-11-26 31 views
0

我想通過硒webDriver上傳文件,但硒給出錯誤:無法找到元素。我用所有的方法來查找元素並點擊瀏覽,但沒有任何點擊發生在那。請給我一些建議。作爲參考我附上了截圖。如何通過硒瀏覽和上傳文件Web驅動

問候enter image description here

+0

截圖並沒有太多幫助。你可以給我們提供你想要操作的HTML和你試過的代碼嗎? – Seanny123

+0

+0

已嘗試的代碼:操作ac =新操作(驅動程序); WebElement fileinput = driver.findElement(By.name(「metadata_item」)); ac.click(fileinput).perform(); –

回答

0

着回答不HTML代碼。 以單擊瀏覽按鈕,發生在上一個字段即指針, 電子郵件地址字段,並使用

Robot robot=new Robot(); 
    robot.keyPress(KeyEvent.VK_TAB); 
    robot.keyRelease(KeyEvent.VK_TAB); 
    robot.keyPress(KeyEvent.VK_ENTER); 
    robot.keyRelease(KeyEvent.VK_ENTER); 

,然後系統彈出式窗口,然後使用AutoIt的工具來處理它

-Ajay

+0

如果您決定使用Selenium Hub遠程運行測試,這將不起作用。 – user2525437

+0

謝謝你的工作。 –

1

首先檢查輸入元素是否可見

然後,你不必點擊瀏覽按鈕,它會觸發一個操作系統級別的對話框,並有效地停止你的測試死亡。

爲了應對這種遵循此代碼:

driver.findElement(By.id("myElementId")).sendKeys("<pathToFile>"); 

myElementId是元素(在這種情況下按鈕)的ID和的SendKeys你必須指定你想要的內容的絕對路徑上傳。 Webdriver將爲您完成剩下的工作。

請記住,只有當要素你發送一個文件應該是在形式

0

這可能是由另一架則上傳將正常工作。 嘗試切換到該框架並單擊該元素。 它會工作。

對於實施例 - 如果瀏覽按鈕是在其下具有標識=「frameUpload」另一幀,則webdriver的切換到該幀像這樣:

driver.switchTo().frame("frameUpload"); 

現在點擊這樣的瀏覽按鈕:

driver.findElement(By.Id("Id of the button")).click(); 

,一旦你與點擊一下鼠標,就可以隨時恢復爲默認的窗口這樣

driver.switchTo().DefaultContent(); 
+0

感謝您的回覆。 –

相關問題