2016-06-30 3 views
1

Angenommen, ich habe diese HTML.
Wie ändere ich die Position von dragbaren untergeordneten Elementen mit self elter mit Selen Python

<div name="parent"> 
    <div name="child one"> </div> 
    <div name="child two"> </div> 
    <div name="child three"> </div> 
    <div name="child four"> </div> 
</div> 

Alle diese untergeordneten Elemente sind dragable aber nicht außerhalb ihres Elternelements platziert werden.

Meine Frage ist, wie kann ich Selen-Python sagen, dass Kind ein und legen Sie es neben Kind vier ziehen ??

So resultierende HTML sollte so sein.

<div name="parent"> 
    <div name="child two"> </div> 
    <div name="child three"> </div> 
    <div name="child four"> </div> 
    <div name="child one"> </div> 
</div> 

Ich habe herum gesucht.
wie Selenium-python-readthedocs
und this stackoverflow question
Aber ich habe nichts zu meinem Problem gefunden.

+0

Wenn Sie negativ stimmen. Bitte weisen Sie darauf hin, was mit der Frage nicht in Ordnung ist. Also kann ich es verbessern. –

+0

Im Allgemeinen möchten die Leute sehen, dass Sie etwas selbst versucht haben. Du hast es gut gemacht, indem du ein paar Nachforschungen angestellt und bewiesen hast, dass du etwas getan hast, indem du relevante Links postest. Sie sollten den Code, den Sie versucht haben und was das Ergebnis war, veröffentlichen. Es kann uns helfen, besser zu verstehen, was Sie zu tun versuchen und möglicherweise Ihren Code zu korrigieren oder Ihnen in irgendeiner Weise zu helfen. Ich habe nicht runtergeschmissen, also rate ich nur ... – JeffC

Antwort

0

Haben Sie nach ActionChains gesucht? Es ermöglicht Drag & Drop.

childOne = driver.find_element_by_css_selector("div.child.one") 
childFour = driver.find_element_by_css_selector("div.child.four") 
actions = ActionChains(driver) 
actions.drag_and_drop(childOne, childFour) 
actions.perform() 
+1

es macht das Ziehen, aber tut nicht fallen. –

+1

Und auch logisch. Diese Antwort sieht nicht vor, dass irgendein Quellenelement vor dem Zielelement oder nach dem Zielelement sein soll. –

+0

Ich bin mir nicht sicher, worauf Sie sich beziehen. Die Reihenfolge der Elemente im HTML spielt keine Rolle. Es gibt andere Methoden in "ActionChains", die Sie ausprobieren können, wenn sie funktionieren. – JeffC

0

Im Falle von JAVA, das ist die Lösung, können Sie für das gleiche in Python suchen?

Action dragAndDrop = builder.clickAndHold(from web element) 
      .moveToElement(toElement)  
      .release(To)  
      .build();  
dragAndDrop.perform(); 
Verwandte Themen