Selenium RC「attach_file」僅支持* Firefox嗎?有什麼方法可以在谷歌瀏覽器中上傳文件?任何建議或解決方法都非常感謝。Selenium:在Google Chrome中上傳文件
回答
上傳文件通常是一個POST請求,所以你實際上可以在不使用Selenium的情況下上傳文件;除非你的網站需要Cookie,然後你需要webdriver.get_cookies()首先重建餅乾
一個簡單的例子:
# required package:
# http://pypi.python.org/pypi/MultipartPostHandler/0.1.0
import MultipartPostHandler, urllib2, cookielib
cookies = cookielib.CookieJar()
opener = urllib2.build_opener(urllib2.HTTPCookieProcessor(cookies),
MultipartPostHandler.MultipartPostHandler)
path_to_file = r"abc.zip"
open_file = open(path_to_file,"rb")
param = { "file": open_file }
req = opener.open("http://www.yoursite.com/uploadfile", param)
open_file.close()
如果您使用的webdriver然後上傳文件,你需要的是用「 sendKeys「鍵入文件路徑。您需要「跳過」點擊瀏覽按鈕的部分,以打開一個對話框來選擇文件。這對我工作的Java版本看起來像下面,
WebElement inputFilePath = driver.findElement(By.id("filepath"));
inputFilePath.sendKeys("/absolute/path/to/my/local/file");
也許還值得注意的是,使用sendKeys上傳文件只能用於 – Ardesco 2013-03-18 09:02:05
使用IJavaScriptExecutor是改變上傳輸入欄點擊能夠使駕駛員鉻不會彈出錯誤說這個元素是不可點擊。
[SetUp]
public void SetupTest()
{
driver = new ChromeDriver();
baseURL = "";
verificationErrors = new StringBuilder();
}
[Test]
public void Test()
{
IJavaScriptExecutor js = driver as IJavaScriptExecutor;
IWebElement element = driver.FindElement(By.Id("UploadFile_ButtonID"));
js.ExecuteScript("arguments[0].style.visibility = 'visible'; arguments[0].style.height = '1px'; arguments[0].style.width = '1px'; arguments[0].style.opacity = 1", element);
Thread.Sleep(1000);
element.SendKeys("D:\\path\\test\\image.jpg");
}
沒有上下文的代碼是毫無意義的,你沒有解釋爲什麼你使用JavaScript Executor來設置元素可見,恕我直言,這可能是不好的做法。阻止您與隱藏元素進行交互,因爲這是最終用戶無法做到的事情,而不是盲目使用J avaScript強制元素可見,您應該實際上做最終用戶會做什麼來使元素可見。 – Ardesco 2013-03-18 09:00:05
您還使用Thread.sleep這又是一個不好的做法,要做的正確的事情是使用WebDriverWait對象和ExpectedConditions類來等待元素變爲可見。這是一個粗劣的例子,沒有解釋和錯誤的代碼練習-1 – Ardesco 2013-03-18 09:00:36
- 1. selenium webdriver .net chrome上傳文件
- 2. Ajax上傳Google Chrome的文件錯誤?
- 3. Selenium上傳文件
- 4. 在Python中使用Selenium上傳文件
- 5. 在C#中使用Selenium上傳文件?
- 6. 在Google Chrome/Chromium和Safari中拖放文件上傳?
- 7. 使用Selenium上傳文件
- 8. selenium webdriver上傳文件
- 9. Selenium RC上傳文件
- 10. Selenium Webdriver - 上傳Audido文件
- 11. 在Chrome擴展中上傳文件
- 12. html文件上傳控件沒有在Chrome上傳文件
- 13. 在ASP.NET文件上傳控件中使用Selenium Webdriver C#自動上傳文件
- 14. cloneNode不克隆Google Chrome中文件上傳元素的值
- 15. 無法上傳selenium webdriver中的文件
- 16. JERSEY在Google App Engine中上傳文件
- 17. 在Google App Engine中上傳文件
- 18. Selenium上的圖片/文件上傳
- 19. 如何在.net中使用PhantomJS在selenium webdriver中上傳文件?
- 20. Blueimp文件上傳器 - Chrome文件夾上傳限制
- 21. 上傳文件到Google Drive
- 22. 如何使用Selenium Python在WordPress文章中上傳文件?
- 23. 上傳文件時Selenium被阻止
- 24. 使用WWW上傳文件:: Selenium
- 25. 用ubuntu上傳selenium和python文件
- 26. 用selenium ide上傳文件到Dropzone.js
- 27. python selenium點擊文件上傳選項
- 28. Selenium 2.0 - 文件上傳不起作用
- 29. 如何使用Junit Selenium上傳文件?
- 30. Selenium Grid和Jenkins,上傳文件
[我張貼使用python在這裏的答案。] [1] [1]:http://stackoverflow.com/a/11872608/471376 – JamesThomasMoon1979 2012-08-08 20:43:42