2014-07-12 15 views
6

Tôi đang thực hiện một số thử nghiệm tải tệp lên. Tôi thấy rằng mã thử nghiệm của tôi bị treo ở số element.send_keys(file) nếu tôi đang sử dụng PhantomJS, tuy nhiên mã tương tự không treo nếu tôi đang sử dụng Firefox.Trình quản lý web selenium - PhantomJS treo trên send_keys() để nhập phần tử đầu vào

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

Có cách giải quyết nào để làm cho tệp PhantomJS tải lên đúng cách không? Hiện tại tôi đang sử dụng Windows 7, Python 3.4.1, selenium 2.42.1, PhantomJS 1.9.7.

+0

Bạn có thể biết liệu đầu vào có thuộc tính muliple – Jack

+0

Đầu vào có thuộc tính "nhiều" hay không. –

+0

Tôi gặp vấn đề tương tự với PhantomJS khi bạn gửi send.keys (tập tin). Tôi đã không có bất kỳ may mắn di chuyển về phía trước, Những gì tôi có thể nói là selen không phải là lái xe html5 trang đó là tốt. Chúng tôi không thể trực tiếp thiết lập giá trị của đầu vào bằng cách sử dụng send_keys. Chúng tôi cần mở cửa sổ hộp thoại trình duyệt tải lên, trong trường hợp của bạn nếu bạn có, và điền vào filepath bằng cách sử dụng API tự động hóa bên ngoài như AutoIT vv vì trình quản lý web không có đầu mối về cửa sổ hộp thoại ở cấp độ hệ điều hành. Tôi biết đây là một rắc rối, nhưng tôi đã thử thực hiện javascript, Trình xây dựng hành động không hoạt động. – Jack

Trả lời

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

Nếu không đặt kích thước cửa sổ, trình duyệt vẫn ở kích thước di động gây ra lỗi. Hãy thử một chờ đợi tiềm ẩn quá.

0

Nên sử dụng PhantomJS.uploadFile(). Tuy nhiên, không tìm thấy API selenium python.

var webPage = require('webpage'); 
var page = webPage.create(); 
page.uploadFile('input[name=image]', '/path/to/some/photo.jpg'); 
Các vấn đề liên quan