如何使用selenium python在同一父级中更改可拖动子元素的位置

时间:2016-06-30 12:31:37

标签: python selenium selenium-webdriver

假设我有这个HTML。

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

所有这些子元素都是可拖动的,但不能放在其父元素之外。

我的问题是我怎么能告诉selenium-python拖动一个孩子并将其放在四个孩子旁边

因此产生的html应该是这样的。

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

我一直在寻找。
比如Selenium-python-readthedocs
this stackoverflow question
但我发现与我的问题无关。

2 个答案:

答案 0 :(得分:0)

你有没有看过ActionChains?它允许拖放。

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 :(得分:0)

对于JAVA,这是解决方案,你能在python中查找相同的内容吗?

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