【Selenium02篇】python+selenium實現Web自動化:鼠標操作和鍵盤操作!


 

一、前言

最近問我自動化的人確實有點多,個人突發奇想:想從0開始講解python+selenium實現Web自動化測試,請關注博客持續更新!

這是python+selenium實現Web自動化第二篇博文

二、Selenium第一篇博文地址:

【Selenium01篇】python+selenium實現Web自動化:搭建環境,Selenium原理,定位元素以及瀏覽器常規操作!

三、Selenium之鼠標操作和鍵盤操作

1.鼠標事件

在webdriver中,鼠標操作的方法封裝在 ActionChains 類提供。ActionChains類提供了鼠標操作的常用方法:

ActionChains(driver),將瀏覽器驅動 driver 作為參數傳入。

(1) perform(): 執行所有 ActionChains 中存儲的行為,是對整個操作的提交動作;

(2) context_click(): 右擊

(3) double_click(): 雙擊

(4) drag_and_drop(): 拖動

(5) move_to_element(): 鼠標懸停, 在調用時需要指定元素定位

具體代碼如下:

#!/usr/bin/env python # -*- encoding: utf-8 -*- """ @Time : 2020/4/15 @Author : 公眾號:軟測之家 更多技術干貨,軟測視頻,面試資料請關注! @Contact : 軟件測試技術群:695458161 @License : (C)Copyright 2017-2019, Micro-Circle """ from selenium import webdriver from selenium.webdriver.common.action_chains import ActionChains import time base_url = 'http://www.baidu.com/' browser = webdriver.Chrome('../tools/chromedriver.exe') browser.get(base_url) # 定位到懸停元素處 above = browser.find_element_by_link_text('設置') # 對元素執行鼠標懸停操作 ActionChains(browser).move_to_element(above).perform() time.sleep(5) # 右擊 ActionChains(browser).context_click().perform() time.sleep(5) # 定位到要雙擊的元素處 # double_click_element = browser.find_element_by_link_text('新聞') # print(double_click_element) # ActionChains(browser).move_to_element(double_click_element).double_click().perform() # time.sleep(5) # 拖動元素 drag_and_drop_element = browser.find_element_by_link_text('地圖') ActionChains(browser).move_to_element(drag_and_drop_element).drag_and_drop().perform() time.sleep(5) browser.quit()

2.鍵盤事件

  前面的 send_keys() 方法用來模擬鍵盤輸入;keys() 類提供了鍵盤上幾乎所有按鍵的方法,組合鍵也是可以的。

常用的鍵盤操作如下:

send_keys(Keys.BACK_SPACE) 刪除鍵(BackSpace)
send_keys(Keys.SPACE) 空格鍵(Space)
send_keys(Keys.TAB) 制表鍵(Tab)
send_keys(Keys.ESCAPE) 回退鍵(Esc)
send_keys(Keys.ENTER) 回車鍵(Enter)
send_keys(Keys.CONTROL,'a') 全選(Ctrl+A)
send_keys(Keys.CONTROL,'c') 復制(Ctrl+C)
send_keys(Keys.CONTROL,'x') 剪切(Ctrl+X)
send_keys(Keys.CONTROL,'v') 粘貼(Ctrl+V)
send_keys(Keys.F1) 鍵盤 F1
……
send_keys(Keys.F12) 鍵盤 F12

#!/usr/bin/env python # -*- encoding: utf-8 -*- """ @Time : 2020/4/15 @Author : 公眾號:軟測之家 更多技術干貨,軟測視頻,面試資料請關注! @Contact : 軟件測試技術群:695458161 @License : (C)Copyright 2017-2019, Micro-Circle @Desc : None """ from selenium import webdriver from selenium.webdriver.common.keys import Keys import time base_url = 'https://www.baidu.com/' driver = webdriver.Chrome('../tools/chromedriver.exe') driver.get(base_url) # 先輸入百度 driver.find_element_by_id('kw').send_keys('百度') # 1.刪除度 driver.find_element_by_id('kw').send_keys(Keys.BACK_SPACE) time.sleep(3) # 2.鍵入空格 driver.find_element_by_id('kw').send_keys(Keys.SPACE) driver.find_element_by_id('kw').send_keys('加入空格') time.sleep(5) # 3.ctrl+a 全選輸入框里的內容 driver.find_element_by_id('kw').send_keys(Keys.CONTROL, 'a') time.sleep(3) # 4.ctrl+x 剪切輸入框里的內容 driver.find_element_by_id('kw').send_keys(Keys.CONTROL, 'x') time.sleep(3) # 5. ctrl+v 粘貼剪切的內容 driver.find_element_by_id('kw').send_keys(Keys.CONTROL, 'v') time.sleep(3) # 6. 回車 driver.find_element_by_id('su').send_keys(Keys.ENTER) time.sleep(3) driver.quit()

四、持續更新中請關注

如果你覺得此文對你有幫助,如果你對軟件測試、接口測試、自動化測試、面試經驗交流感興趣歡迎加入:

軟件測試技術群:695458161群里發放的免費資料都是筆者十多年測試生涯的精華。還有同行大神一起交流技術哦。

作者:來自公眾號:軟測之家
出處:https://www.cnblogs.com/csmashang/p/12706696.html
原創不易,歡迎轉載,但未經作者同意請保留此段聲明,並在文章頁面明顯位置給出原文鏈接。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM