Selenium WebDriver-通过ActionChains实现页面元素拖拽

#encoding=utf-8
import unittest
import time
import chardet
from selenium import webdriver
 
class VisitSogouByIE(unittest.TestCase):

    def setUp(self):
        #启动IE浏览器
        #self.driver = webdriver.Firefox(executable_path = "e:\\geckodriver")
        self.driver = webdriver.Ie(executable_path = "e:\\IEDriverServer")
        
    def test_dragPageElement(self):
        url = "http://jqueryui.com/resources/demos/draggable/scroll.html"
        # 访问被测试网页
        self.driver.get(url)
        # 获取页面上第一个能拖拽的页面元素
        initialPosition = self.driver.find_element_by_id("draggable")
        # 获取页面上第二个能拖拽的页面元素
        targetPosition = self.driver.find_element_by_id("draggable2")
        # 获取页面上第三个能拖拽的页面元素
        dragElement = self.driver.find_element_by_id("draggable3")
        # 导入提供拖拽元素方法的模块ActionChains
        from selenium.webdriver import ActionChains
        import time
        '''
        创建一个新的ActionChains,将webdriver实例对象driver作为参数值传入
        然后通过WebDriver实例执行用户动作。
        '''
        action_chains = ActionChains(self.driver)
        # 将页面上第一个能被拖拽的元素拖拽到第二个元素位置
        action_chains.drag_and_drop(initialPosition, targetPosition).perform()
        # 将页面上第三个能拖拽的元素,向右下拖动10个像素,共拖动5次
        for i in xrange(5):
            action_chains.drag_and_drop_by_offset(dragElement, 10, 10).perform()
            time.sleep(2)



    def tearDown(self):
        # 退出IE浏览器
        self.driver.quit()

if __name__ == '__main__':
    unittest.main()

 

posted @ 2018-04-03 16:39  小七Libra  阅读(3462)  评论(0编辑  收藏  举报