天天看點

Selenium 滑鼠鍵盤操作與滾動條控制

實作思路

  • 需要引入ActionChains類
  • 然後定位相關元素
  • 在ActionChains().調用相關滑鼠操作方法

相關方法

  • context_click() 右擊
  • double_click () 單擊
  • move_to_element() 滑鼠懸停

滑鼠操作

from selenium import webdriver
from selenium.webdriver.common.action_chains import ActionChains
from time import sleep

driver=webdriver.Firefox()

driver.get("http://www.baidu.com")
driver.maximize_window()

driver.find_element_by_css_selector("#kw").send_keys("Python")

# 擷取搜尋框元素對象
element=driver.find_element_by_css_selector("#kw")

sleep(3)
#輕按兩下操作
ActionChains(driver).double_click(element).perform()

sleep(2)

#右擊操作
ActionChains(driver).context_click(element).perform()

sleep(3)

#滑鼠懸停
above=driver.find_element_by_css_selector(".pf")
ActionChains(driver).move_to_element(above).perform()

sleep(4)
driver.quit()

           

複制

鍵盤操作

測試案例

  • 在百度搜尋關鍵詞“Python”
  • 然後将關鍵詞複制或剪切到搜狗搜尋框進行搜尋

代碼實作

from selenium import webdriver
from selenium.webdriver.common.keys import Keys
from time import sleep

driver=webdriver.Firefox()

driver.get("http://www.baidu.com")
driver.find_element_by_css_selector("#kw").send_keys("Python")

sleep(2)
#鍵盤全選操作 Ctrl+A
driver.find_element_by_css_selector("#kw").send_keys(Keys.CONTROL,'a')

#鍵盤選擇複制或剪切操作 Ctrl+C
driver.find_element_by_css_selector("#kw").send_keys(Keys.CONTROL,'c')
driver.find_element_by_css_selector("#kw").send_keys(Keys.CONTROL,'x')

#打開搜狗頁面
driver.get("http://www.sogou.com/")
sleep(2)

#粘貼複制内容
driver.find_element_by_css_selector(".sec-input").send_keys(Keys.CONTROL,'v')
sleep(2)

#點選搜尋按鈕
# driver.find_element_by_xpath("//input[@id='stb']").click()
driver.find_element_by_css_selector("#stb").click()


sleep(3)
driver.quit()           

複制

滾動條控制

selenium可以模拟人工上下滑動進度條的操作。

實踐案例

案例1:

打開我要自學網頁面,然後将滾動條拖到最底部,然後再拖到頂部

from  selenium import webdriver
from time import sleep

driver=webdriver.Firefox()
driver.get("http://www.51zxw.net/")
sleep(2)

#将滾動調拖到最底部
js="var action=document.documentElement.scrollTop=10000"
driver.execute_script(js)
sleep(2)

#将滾動條拖到最頂部
js="var action=document.documentElement.scrollTop=0"
driver.execute_script(js)
sleep(3)

driver.quit()
           

複制

案例2:

分别打開我要自學網頁面和百度頁面,然後進行截圖

from selenium import webdriver
from time import sleep

#加載浏覽器驅動
driver=webdriver.Firefox()

#打開自學網頁面并截圖
driver.get("http://www.51zxw.net")
driver.get_screenshot_as_file(r"E:\Python_script\51zxw.jpg")

#打開百度頁面并截圖
driver.get("http://www.baidu.com")
driver.get_screenshot_as_file(r"E:\Python_script\baidu.png")


sleep(2)
driver.quit()           

複制

更多幹貨

  • Webdriver簡介
  • Selenium 元素checkbox元素操作與元素等待
  • 8.9 Selenium元素定位方式
  • Appium連續滑動操作——九宮格滑動
  • Appium Android Toast元素識别
  • Android H5元素定位
  • Mac 環境Appium自動化測試環境搭建
  • 衆裡尋他千百度—Appium Android 元素定位方式
  • Android自動化測試裝置彈窗處理
  • Ubuntu+Docker+STF環境搭建
  • Mac OS環境搭建STF
  • Python自動化日志收集
  • Appium參數配置—yaml