मैं ड्रैग ड्रॉप एक्शन के लिए स्वचालन परीक्षण के लिए सेलेनियम 2 लाइब्रेरी का उपयोग कर रहा हूं। मैं विंडोज 8 64 बिट, सेलेनियम 2.48.0, ride.py पर चल रहा हूँ। परीक्षण के लिए इस्तेमाल किया ब्राउज़र: फ़ायरफ़ॉक्स और क्रोम नवीनतम स्थिर संस्करणसेलेनियम एक्शनचेन() का उपयोग करते समय लटकता है। फिर एक्शनचैन.क्लिक या माउस_अप
मैं क्या किया इनपुट पाठ और लिंक के साथ एक डमी html पृष्ठ बनाने के लिए, और खींचें कि इनपुट पाठ
यहाँ के भीतर लिंक करने की कोशिश करना था एचटीएमएल है:
class CustomSeleniumLibrary(Selenium2Library):
...
def test_drag(self):
self.open_browser("http://localhost:8080/a.html", "firefox")
source = self._element_find("//a[@id='source']", True, True)
target = self._element_find("//input[@id='target']", True, True)
drag = ActionChains(self._current_browser()).click_and_hold(source)
moveDum = ActionChains(self._current_browser()).move_by_offset(1,1)
move = ActionChains(self._current_browser()).move_to_element_with_offset(target,1,1)
#I have also tried ActionChains().drag_and_drop().perform() or make a dummy move move_by_offset followed by move_to_element_with_offset but no use
drag.perform()
moveDum.perform()
move.perform()
मैं क्या पाया है, जब इस कदम खत्म या mouse_down() खत्म, अगली कार्रवाई कामकाज नहीं कर रहा है:
<div id="wrapper">
<input id="target" type="text" style="width:200px; height:50px" />
</div>
<a id="source" href="http://google.com" >drag me </a>
और यहाँ स्वचालन के लिए मेरी अजगर कोड है मेड, मैं देख सकता हूं कि लिंक पकड़ लिया गया है, लेकिन जब तक मैं अपने माउस को मैन्युअल रूप से ब्राउज़र पर नहीं ले जाता तब तक कोई कदम क्रिया नहीं होती है। उस समय ride.py यूआई फ्लिक और अनुरोध: 16:24:47.042 : DEBUG : POST http://127.0.0.1:58095/hub/session/fa7590b6-396f-4cb5-a08a-e35138a9216e/moveto {"sessionId": "fa7590b6-396f-4cb5-a08a-e35138a9216e", "element": "{6586b4ae-3c51-4e18-bb40-e006af369768}", "xoffset": 1, "yoffset": 1}
हमेशा के लिए लटका हुआ है जब तक मैं ब्राउज़र
पर मैन्युअल रूप से माउस ले जाते हैं आप में से किसी को भी क्या एक ही समस्या है, या मैंने कुछ गलत किया? और क्या आपके पास robotframework selenium2library का उपयोग करके ड्रैगंडड्रॉप सुविधा का उपयोग करने के लिए कोई सुझाव है?
सादर, दान
आप पर अमल करने की जरूरत है काम करता है, तो जानते हैं प्रत्येक श्रृंखला के लिए अलग-अलग 'प्रदर्शन()' विधि को कॉल करने के बजाय एक श्रृंखला में एक करके एक श्रृंखला में आदेश ... – Andersson