三,操作滑鼠事件的api,首先要知道關於滑鼠操作的方法封裝在actionchains類提供,那麼要先導入這個類
特別說明的是大家可以發現,每個滑鼠動作後面都有個perform(),這個的意思是:執行actionchains類中儲存的所有動作,也可以理解為對動作的提交,也就是說真正的執行該動作。
from selenium import webdriver
from selenium.webdriver.common.action_chains import actionchains
driver = webdriver.chrome()
driver.get("")
el_input = driver.find_element_by_id("kw")
el_shezhi = driver.find_element_by_name("tj_settingicon")
el_input.send_keys("selenium")
el_btn = driver.find_element_by_id("su")
#滑鼠單擊
actionchains(driver).click(el_btn).perform()
#右擊actionchains(driver).context_click(el_btn).perform()
#雙擊actionchains(driver).double_click(el_btn).perform()
#拖動actionchains(driver).drag_and_drop(el_btn).perform()
#滑鼠懸停
actionchains(driver).move_to_element(el_shezhi).perform()
四,鍵盤操作事件,鍵盤上辣麼多的鍵,怎麼操作了,請看**,有三種方式實現
(1)通過keys類實現,引入包:from selenium.webdriver.common.keys import keys
from selenium import webdriver
from selenium.webdriver.common.keys import keys
driver = webdriver.chrome()
driver.get("")
el_input = driver.find_element_by_id("kw")
el_input.send_keys("fsafsaf")
#刪除鍵(backspace)
el_input.send_keys(keys.back_space)
#空格鍵(space)
el_input.send_keys(keys.space)
#製表鍵(tab)
el_input.send_keys(keys.tab)
#回退鍵(esc)
el_input.send_keys(keys.escape)
#回車鍵(enter)
el_input.send_keys(keys.enter)
#全選(ctrl+a)
el_input.send_keys(keys.control,'a')
#複製(ctrl+c)
el_input.send_keys(keys.control,'c')
#剪下(ctrl+x)
el_input.send_keys(keys.control,'x')
#貼上(ctrl+v)
el_input.send_keys(keys.control,'v')
#鍵盤 f1
el_input.send_keys(keys.f1)
#鍵盤 f12
el_input.send_keys(keys.f12)
(2)通過key_down()(按下鍵盤),send_keys,key_up()(釋放鍵盤)
from selenium import webdriver
from selenium.webdriver.common.keys import keys
from selenium.webdriver.common.action_chains import actionchains
driver = webdriver.chrome()
driver.get("")
el_input = driver.find_element_by_id("kw")
el_input.send_keys("selenium")
#全選actionchains(driver).key_down(keys.control).send_keys('a').key_up(keys.control).perform()
#剪下actionchains(driver).key_down(keys.control).send_keys('x').key_up(keys.control).perform()
driver.get("")
el_input = driver.find_element_by_id("kw").click()
#貼上actionchains(driver).key_down(keys.control).send_keys('v').key_up(keys.control).perform()
3.通過第三方的模組來實現,需要安裝pywin32模組:pip install pywin32
import win32api
import win32con
class keyboardkeys(object):
#模擬鍵盤按鍵類
vk_code=
@staticmethod
def keydown(keyname):
#按下按鍵
win32api.keybd_event(keyboardkeys.vk_code[keyname],0,0,0)
@staticmethod
def keyup(keyname):
#釋放按鍵
win32api.keybd_event(keyboardkeys.vk_code[keyname],0,win32con.keyeventf_keyup,0)
@staticmethod
def onekey(key):
#模擬單個按鍵
keyboardkeys.keydown(key)
keyboardkeys.keyup(key)
@staticmethod
def twokeys(key1,key2):
#模擬兩個組合鍵
keyboardkeys.keydown(key1)
keyboardkeys.keydown(key2)
keyboardkeys.keyup(key2)
keyboardkeys.keyup(key1)
selenium 自動化測試。
第一步安裝 谷歌瀏覽器。第三步編寫測試測試指令碼 第四步 安裝selemium coding utf 8 引入webdriver和unittest所需要的包 from selenium import webdriver from selenium.webdriver.common.by import...
Python自動化測試 Selenium
第乙個selenium就。先show from selenium import webdriver driver webdriver.firefox driver.get assert oxcoder decode utf 8 in driver.title print driver.title d...
自動化測試selenium(四)
三 用例的執行順序 四 unittest斷言 unittest 各元件的關係為 test fixture 初始化和清理測試環境,比如建立臨時的資料庫,檔案和目錄等,其中 setup 和 setdown 是最常用的方法 test case 單元測試用例,testcase 是編寫單元測試用例最常用的類 ...