2016-01-12 19 views
6

Selenium2library kullanarak sürükle bırak işlemi için otomasyon testi kullanıyorum. Windows 8 64bit üzerinde çalışıyorum, selenium 2.48.0, ride.py. Test için kullanılan Tarayıcı: firefox ve krom son kararlı sürümü ne yaptımSelenium actionchain() kullanırken kilitleniyor. Movechain.click veya mouse_up dosyasını çalıştırın

giriş metin ve bağlantı ile bir kukla html sayfası oluşturun ve metin girmek İşte

içine bağlantı sürükle çalışmaktı html geçerli: hareket bitirmek veya MOUSE_DOWN() bitiş, bir sonraki işlem gerçekleştirmek değilken buldum ne

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() 

geçerli:

<div id="wrapper"> 

<input id="target" type="text" style="width:200px; height:50px" /> 
</div> 
<a id="source" href="http://google.com" >drag me </a> 

ve burada otomasyonu için benim piton kodudur med, bağlantının bekletildiğini görebiliyorum, ancak fareyi tarayıcıya el ile hareket ettirene kadar hiçbir işlem yapılmıyor. ride.py UI o zaman hareketleri ve isteği: Senden kimseyi yapın tarayıcısı

elle fareyi hareket aynı problem var, ya da ben yanlış bir şey mi yaptım dek 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}

sonsuza asılı? Ve robotframework selenium2library kullanarak draganddrop özelliğini kullanmak için herhangi bir öneriniz var mı?

Saygılarımızla, Dan

+0

çalıştığını bana bildirin her biri için ayrı ayrı 'perform()' yöntemini çağırmak yerine tek bir işlem olarak bir zincirde komutlar gönderir ... – Andersson

cevap

2

bunu kontrol edemez, ama ben bu şekilde ActionChains eser hatırladığınız:

actions = ActionChains(self._current_browser()) 
actions.click_and_hold(source) 
actions.move_by_offset(1,1) 
actions.move_to_element_with_offset(target,1,1) 
actions.perform() 

bu kodu yanlış Sen yürütmek için ihtiyaç

+0

Cevabınız için teşekkürler, ama ben de denedim ve işe yaramadı. Ne garip görünüyor bir click_and_hold veya mouse_down gerçekleştirmek daha sonra move_to_element (another_element) tarafından takip, ride.py asılı gösterir ve oturum ve işlem taşıma eylemi oluşturmak için localserver bağlanmaya çalıştığınızda, aynı zamanda askıda kalıyor (lütfen isteği bakın –

+0

'Chrome' tarayıcısını kullanıyor musunuz? – Andersson

+0

Hem Chrome hem de firefox’u kullanıyorum –

İlgili konular