qileilove

          blog已經(jīng)轉(zhuǎn)移至github,大家請(qǐng)?jiān)L問(wèn) http://qaseven.github.io/

          selenium + python 鼠標(biāo)事件

          十、鼠標(biāo)事件
          本章重點(diǎn):
          ActionChains 類
          ?
          context_click()
          右擊
          ?
          double_click()
          雙擊
          ?
          drag_and_drop()
          拖動(dòng)
          測(cè)試的產(chǎn)品中有一個(gè)操作是右鍵點(diǎn)擊文件列表會(huì)彈出一個(gè)快捷菜單,可以方
          便的選擇快捷菜單中的選擇對(duì)文件進(jìn)行操作(刪除、移動(dòng)、重命名),之前學(xué)習(xí)
          元素的點(diǎn)擊非常簡(jiǎn)單:
          driver.find_element_by_id(“xxx”).click()
          博客園—蟲師
          http://fnng.cnblogs.com
          26
          那么鼠標(biāo)的雙擊、右擊、拖動(dòng)等是否也是這樣的寫法呢?例如右擊:
          driver.find_element_by_id(“xxx”).context_click()
          經(jīng)過(guò)運(yùn)行腳本得到了下面的錯(cuò)誤提示:
          AttributeError: 'WebElement' object has no attribute 'context_click'
          提示右點(diǎn)方法不屬于 webelement 對(duì)象,通過(guò)查找文檔,發(fā)現(xiàn)屬于
          ActionChains 類,但文檔中沒有具體寫法。這里要感謝 北京-QC-rabbit 的指
          點(diǎn),其實(shí)整個(gè) python+selenium 學(xué)習(xí)過(guò)程都要感謝 北京-QC-rabbit 的指點(diǎn)。
          10.1、鼠標(biāo)右鍵
          下面介紹鼠標(biāo)右鍵的用法,以快播私有云為例:
          #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]")
          #對(duì)定位到的元素執(zhí)行鼠標(biāo)右鍵操作
          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 類之前,要先將包引入。
          右擊的操作會(huì)了,下面的其它方法比葫蘆畫瓢也能寫出來(lái)。
          10.2、鼠標(biāo)雙擊
          鼠標(biāo)雙擊的寫法:
          #定位到要雙擊的元素
          qqq =driver.find_element_by_xpath("xxx")
          #對(duì)定位到的元素執(zhí)行鼠標(biāo)雙擊操作
          ActionChains(driver).double_click(qqq).perform()
          10.3、鼠標(biāo)拖放
          鼠標(biāo)拖放操作的寫法:
          #定位元素的原位置
          element = driver.find_element_by_name("source")
          #定位元素要移動(dòng)到的目標(biāo)位置
          target =
          driver.find_element_by_name("target")
          博客園—蟲師
          http://fnng.cnblogs.com
          28
          #執(zhí)行元素的移動(dòng)操作
          ActionChains(driver).drag_and_drop(element, target).perform()

          posted on 2014-04-21 19:17 順其自然EVO 閱讀(2592) 評(píng)論(0)  編輯  收藏 所屬分類: 自動(dòng)化測(cè)試python

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

          導(dǎo)航

          統(tǒng)計(jì)

          常用鏈接

          留言簿(55)

          隨筆分類

          隨筆檔案

          文章分類

          文章檔案

          搜索

          最新評(píng)論

          閱讀排行榜

          評(píng)論排行榜

          主站蜘蛛池模板: 河东区| 福安市| 奉节县| 蕲春县| 西吉县| 准格尔旗| 正蓝旗| 云林县| 衡山县| 敖汉旗| 太白县| 布尔津县| 固安县| 泰兴市| 玉田县| 澳门| 隆子县| 恩施市| 乐昌市| 得荣县| 宣恩县| 巨野县| 阜新| 大邑县| 商都县| 新龙县| 康平县| 陈巴尔虎旗| 长寿区| 崇信县| 兴宁市| 保靖县| 格尔木市| 瑞金市| 从化市| 乌兰县| 望都县| 濮阳县| 肃北| 陵川县| 宣化县|