2012-01-12 48 views
9

Tôi không thể kéo và thả hoạt động với các ràng buộc Python WebDriver. Tôi đang làm việc với Google Chrome và Firefox trên Mac OS X. Có một chủ đề here nơi ai đó gặp sự cố tương tự.Python Selenium WebDriver kéo và thả

Tôi đã cố gắng sử dụng ActionsChains:

from selenium import webdriver 
from selenium.webdriver import ActionChains 
driver = webdriver.Chrome() 
actionChains = ActionChains(driver) 

actionChains.drag_and_drop(source, target).perform() 

Bạn đã quản lý để có được Python WebDriver drag-and-drop làm việc?

+0

Nó có thể giúp đỡ nếu bạn đề cập đến một vấn đề cụ thể bạn đang gặp. – Marcin

+0

@Marcin: Cảm ơn. Tôi đã cập nhật câu hỏi. Tôi đang cố kéo 'source' sang' target'. Tôi đã đăng một số mã. – Randomblue

+0

Có thể có sự cố với 'nguồn' hoặc' mục tiêu'. Có lẽ cho thấy những người quá? – Marcin

Trả lời

7

Vì mục đích cung cấp câu trả lời cập nhật, tôi đã xác minh rằng điều này thực tế hoạt động trên máy Mac ngay bây giờ.

from selenium import webdriver 
from selenium.webdriver.common.action_chains import ActionChains 

driver = webdriver.Firefox() 
driver.get("your.site.with.dragndrop.functionality.com") 
source_element = driver.find_element_by_name('your element to drag') 
dest_element = driver.find_element_by_name('element to drag to') 
ActionChains(driver).drag_and_drop(source_element, dest_element).perform() 

Reference

0

Thật khó để nói chính xác mà không có một số HTML mẫu cho nguồn và mục tiêu.

Bạn có thể thử sử dụng drag_and_drop_by_offset(self, source, xoffset, yoffset) thay thế bằng một giá trị nhỏ cho thông số bù trừ. Đôi khi nó hoạt động.

Bạn cũng có thể thử điều chỉnh this C# example sử dụng mouse_down_at, mouse_move_atmouse_up_at thay thế.

4

Chuỗi hành động hiện không hoạt động trên Mac. Nếu bạn đã thử mã trên trên Linux hoặc Windows nó sẽ hoạt động. ChromeDriver gần đạt được quyền này nhưng vẫn cần AFAIK làm việc.

+0

Cảm ơn vì điều này. Bạn có bất kỳ ý tưởng về khung thời gian này không? – Randomblue

+0

Rất tiếc, tôi không biết khung thời gian. Một số người đã cố gắng để xem những gì để và nhận được gần nhưng chúng tôi cần phải có nó ngang bằng với các nền tảng khác trước khi chúng tôi phát hành – AutomatedTester

Các vấn đề liên quan