我想使用webdriver自動上傳文件,我的HTML是 它是文件類型。如何使用webdriver自動上傳文件。
使用螢火蟲我得到了id,它是相同的文本框和按鈕。 (「fileupload」))。sendKeys(「code.txt」);使用此命令的
getWebDriverObj()。findElement(By.id(「fileupload」))。我無法取得結果。
確實有人遇到過這種情況,如果有的話,請你幫幫我。
謝謝 Raghuram。
我想使用webdriver自動上傳文件,我的HTML是 它是文件類型。如何使用webdriver自動上傳文件。
使用螢火蟲我得到了id,它是相同的文本框和按鈕。 (「fileupload」))。sendKeys(「code.txt」);使用此命令的
getWebDriverObj()。findElement(By.id(「fileupload」))。我無法取得結果。
確實有人遇到過這種情況,如果有的話,請你幫幫我。
謝謝 Raghuram。
如果以前的方法不起作用 您可以嘗試下一個鏈。 1.通過點擊按鈕調用文件選擇對話框(使用webdriver方法點擊()或javascript「document.getElementById('id')。click()」 2.並將控制權發送給Autoit(或另一個)並且AutoIt將工作使用文件選擇對話框(類型ADDRES到文件,單擊按鈕) 例如:
var Autoit = new AutoItX3();
const string widowTitle = "File Upload";
Autoit.WinWait(widowTitle, "File &name:", 10);
Autoit.ControlSetText(widowTitle, "", "[CLASS:Edit; INSTANCE:1]", pathToFile);
Autoit.ControlClick(widowTitle, "", "[CLASS:Button; INSTANCE:1]");
Autoit.WinWaitClose(widowTitle, "File &name:", 10);
安裝java和AutoIt的http://code.google.com/p/autoitx4java/
Autois Windows特定只有
這裏是一個更強大的解決方案:
爲此,您將不得不找到實際的輸入框(在提供的文件的路徑)的「ID」,然後使用以下命令:
driver.findElement(By.id("upload")).sendKeys("/path/to/the/file"); driver.findElement(By.id("upload_button")).click();
如果您正在使用WebDriverBackedSelenium你可以使用:
selenium.type(「locator」,「/ path/to/the/file」);
selenium.click("upload_button");
這應該工作。什麼操作系統,瀏覽器(+版本),硒版本和語言(嗯,這是一個愚蠢的問題 - 你的代碼看起來像Java)你使用?網頁上的任何特殊技術堆棧(例如Silverlight,Flash,asp.net等)?當你的代碼運行時會發生什麼,什麼都沒有,或者它拋出異常? javascript'document.getElementById(「fileupload」)。value =「Code.txt」'會做什麼? –
正在使用windows7,browser = firefox(version-11)selenium-standalone-server-2.21.0.jar,language = java。使用Iframe。它沒有拋出任何異常。這與selenium.type命令正常工作。但我想知道如何在webdriver中使用。 – Raghuram
如果您使用Internet Explorer(或任何其他瀏覽器),它是否仍然不工作? –