2012-11-15 79 views
1

將被張貼在迴應 -的AutoIt ControlSetText功能無法插入的文件路徑下的解決方案

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); 

後續問題「如何使用Selenium webdriver的自動文件上傳」:在上面的例子中,pathToFile做不更新文件上傳對話框中的路徑。

我試着用其他AutoIt函數來更新文件路徑,但徒勞無功。我該如何解決這個問題?

+0

注意:在調試模式下,文件路徑被正確更新並且文件被抓取。 – Foo

+0

在什麼瀏覽器中?你有什麼版本的網絡驅動程序?你有什麼版本的Selenium?你有什麼版本的瀏覽器?所有瀏覽器都一樣嗎? – Arran

+0

在所有瀏覽器上都是一樣的。 Selenium Webdriver for C#:2.25.1 – Foo

回答

1

要上傳文件類型的文件名的文件輸入元素:

import org.openqa.selenium.* 
import org.openqa.selenium.firefox.* 
import java.util.concurrent.* 

driver = new FirefoxDriver() 
driver.manage().timeouts().implicitlyWait(0, TimeUnit.SECONDS) 
driver.get("http://www.htmlcodetutorial.com/forms/_INPUT_TYPE_FILE.html") 
driver.findElementByName("upfile").sendKeys("c:\\temp\\myFile.txt") 
driver.findElementByCssSelector("td.content input[type='submit']").click() 

不要單擊文件輸入字段,只要使用的SendKeys,文件選擇對話框自動處理。

+1

謝謝阿列克謝。您所建議的解決方案可以在存在元素的頁面中正常工作。我無法在我的頁面上找到這些元素,並使用AutoIt。我的問題與使用Autoit有關。 – Foo

相關問題