Benötigen klicken, halten und verschieben an bestimmten Koordinaten mit capybara(ruby)
Ich versuche zu implementieren ist eine klicken Sie auf, ziehen Sie und lassen Sie an bestimmte Koordinaten für eine web-Seite, headlessly mit Capybara. Das Ziel ist ein element enthalten-Kalender, die auf Mausereignisse reagiert via ajax. Zeitpläne Hinzugefügt, durch klicken, ziehen und loslassen. Ich habe versucht 2 Methoden:
Methode 1
cal = find(:xpath, "//div[@class='dhx_cal_container']")
page.driver.browser.mouse.move_to(cal.native, 240, 250)
page.driver.browser.mouse.down
page.driver.browser.mouse.move_by(0, 150)
page.driver.browser.mouse.up
Problem mit der Methode 1: nichts passiert nach screenshots.
Methode 2
driver.browser.action.move_to(native).move_by(x1, y1).click_and_hold.perform
driver.browser.action.move_to(native).move_by(x2, y2).release.perform
Problem mit Methode 2: click_and_hold immer Ziele, die die Mitte des Elements.
Irgendwelche Ideen, wie die Umsetzung der klicken Sie auf und ziehen Sie in diesem Fall?
InformationsquelleAutor Miika Palokangas | 2016-03-21
Schreibe einen Kommentar Antworten abbrechen
Du musst angemeldet sein, um einen Kommentar abzugeben.
Sollten Sie verwenden, capybara ist
drag_to
MethodeMehr info: http://www.rubydoc.info/github/jnicklas/capybara/Capybara%2FNode%2FElement%3Adrag_to
Als Sie entdeckt haben, die Capybara-cross-Fahrer drag_to schleppt der Mitte ein element auf die Mitte des anderen. Da diese Ihren Anforderungen nicht, die Sie haben zu gehen Fahrer bestimmte -- in Ihrem Fall haben Sie angegeben, Selen. #click_and_hold sollte nur klicken Sie auf die Mitte eines Elements, wenn Sie es ein element, das bist du nicht. Unter Methode 1 Aktionen und die Umsetzung in Methode 2 Stil der sollte Folgendes tun, was Sie wollen
Die offsets übergeben move_to sind von der linken oberen Ecke des cal.native element. Es scheint seltsam, dass die UIs-Verhalten ist einfach zu ziehen Sie den Behälter um und legen Sie es einige offset entfernt, die nicht auf der Grundlage der position von einem anderen element. Sind Sie sicher, dass Sie wirklich wollen, um die Auswahl von Standorten basierend auf den container, und nicht ziehen Sie Elemente in den container herum?