qileilove

          blog已經轉移至github,大家請訪問 http://qaseven.github.io/

          selenium + python 鼠標事件

          十、鼠標事件
          本章重點:
          ActionChains 類
          ?
          context_click()
          右擊
          ?
          double_click()
          雙擊
          ?
          drag_and_drop()
          拖動
          測試的產品中有一個操作是右鍵點擊文件列表會彈出一個快捷菜單,可以方
          便的選擇快捷菜單中的選擇對文件進行操作(刪除、移動、重命名),之前學習
          元素的點擊非常簡單:
          driver.find_element_by_id(“xxx”).click()
          博客園—蟲師
          http://fnng.cnblogs.com
          26
          那么鼠標的雙擊、右擊、拖動等是否也是這樣的寫法呢?例如右擊:
          driver.find_element_by_id(“xxx”).context_click()
          經過運行腳本得到了下面的錯誤提示:
          AttributeError: 'WebElement' object has no attribute 'context_click'
          提示右點方法不屬于 webelement 對象,通過查找文檔,發現屬于
          ActionChains 類,但文檔中沒有具體寫法。這里要感謝 北京-QC-rabbit 的指
          點,其實整個 python+selenium 學習過程都要感謝 北京-QC-rabbit 的指點。
          10.1、鼠標右鍵
          下面介紹鼠標右鍵的用法,以快播私有云為例:
          #coding=utf-8
          from selenium import webdriver
          from selenium.webdriver.common.action_chains import ActionChains
          import time
          driver = webdriver.Firefox()
          driver.get("http://passport.kuaibo.com/login/?referrer=http%3A%2F%2Fwebcloud
          .kuaibo.com%2F")
          #登陸快播私有云
          driver.find_element_by_id("user_name").send_keys("username")
          driver.find_element_by_id("user_pwd").send_keys("123456")
          driver.find_element_by_id("dl_an_submit").click()
          time.sleep(3)
          #定位到要右擊的元素
          qqq
          =driver.find_element_by_xpath("/html/body/div/div[2]/div[2]/div/div[3]/table
          /tbody/tr/td[2]")
          #對定位到的元素執行鼠標右鍵操作
          ActionChains(driver).context_click(qqq).perform()
          博客園—蟲師
          http://fnng.cnblogs.com
          27
          '''
          #你也可以使用三行的寫法,但我覺得上面兩行寫法更容易理解
          chain = ActionChains(driver)
          implement =
          driver.find_element_by_xpath("/html/body/div/div[2]/div[2]/div/div[3]/table/
          tbody/tr/td[2]")
          chain.context_click(implement).perform()
          '''
          time.sleep(3) #休眠3秒
          driver.close()
          這里需要注意的是,在使用 ActionChains 類之前,要先將包引入。
          右擊的操作會了,下面的其它方法比葫蘆畫瓢也能寫出來。
          10.2、鼠標雙擊
          鼠標雙擊的寫法:
          #定位到要雙擊的元素
          qqq =driver.find_element_by_xpath("xxx")
          #對定位到的元素執行鼠標雙擊操作
          ActionChains(driver).double_click(qqq).perform()
          10.3、鼠標拖放
          鼠標拖放操作的寫法:
          #定位元素的原位置
          element = driver.find_element_by_name("source")
          #定位元素要移動到的目標位置
          target =
          driver.find_element_by_name("target")
          博客園—蟲師
          http://fnng.cnblogs.com
          28
          #執行元素的移動操作
          ActionChains(driver).drag_and_drop(element, target).perform()

          posted on 2014-04-21 19:17 順其自然EVO 閱讀(2591) 評論(0)  編輯  收藏 所屬分類: 自動化測試python

          <2025年7月>
          293012345
          6789101112
          13141516171819
          20212223242526
          272829303112
          3456789

          導航

          統計

          常用鏈接

          留言簿(55)

          隨筆分類

          隨筆檔案

          文章分類

          文章檔案

          搜索

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 漳州市| 峨眉山市| 双牌县| 潜江市| 安远县| 苏州市| 从江县| 晋城| 龙井市| 南江县| 双鸭山市| 塔河县| 东光县| 新晃| 德格县| 广汉市| 桃源县| 沾化县| 左权县| 富平县| 乐陵市| 石柱| 博兴县| 乌恰县| 邛崃市| 闽侯县| 林芝县| 永丰县| 云南省| 宝坻区| 余姚市| 炉霍县| 都兰县| 安国市| 佳木斯市| 托克逊县| 延寿县| 五原县| 都兰县| 织金县| 城步|