2014-07-12 48 views
6

我正在執行一些文件上傳測試。如果我使用PhantomJS,我發現我的測試代碼在element.send_keys(file)處掛起,但是如果我使用Firefox,則相同的代碼不會掛起。硒Webdriver - PhantomJS掛在send_keys()文件輸入元素

element = self.browser.find_element_by_xpath("//input[@type='file']") 
element.send_keys(file) 

是否有任何解決方法讓PhantomJS正確上傳文件?目前我使用Windows 7,Python 3.4.1,Selenium 2.42.1,PhantomJS 1.9.7。

+0

你可以告訴輸入是否具有多個屬性 – Jack

+0

輸入具有「多個」屬性。 –

+0

當您執行send.keys(文件)時,我遇到與PhantomJS相同的問題。我沒有前進的任何好運氣,我可以告訴的是硒並沒有推動那個好的html5頁面。我們不能使用send_keys直接設置輸入的值。我們需要打開上傳瀏覽器對話窗口,在你的情況下,如果你有,使用外部自動化API(如AutoIT等)填寫文件路徑,因爲webdriver根本不知道對話窗口是否在操作系統doamin級別下。我知道這是一個麻煩,但我試圖執行JavaScript,動作生成器沒有工作。 – Jack

回答

0
browser = webdriver.PhantomJS() 
browser.set_window_size(1200,800) 

沒有設置窗口大小,瀏覽器保持移動大小,導致錯誤。嘗試一個隱含的等待。

0

應該使用PhantomJS.uploadFile()。但是,沒有找到python selenium API。

var webPage = require('webpage'); 
var page = webPage.create(); 
page.uploadFile('input[name=image]', '/path/to/some/photo.jpg');