1.selenium鼠標事件web
from selenium import webdriver
b=webdriver.Firefox()測試
url='http://www.baidu.com'
b.get(url)ui
ele=b.find_element_by_id('test')url
from selenium.webdriver.common.action_chains import ActionChainsspa
ActionChains(b) 用於生成模擬用戶行爲orm
perform() 執行存儲行爲blog
將鼠標放到元素上事件
ActionChains(b).move_to_element(ele).perform()圖片
2.鍵盤事件ci
from selenium.webdriver.common.keys import Keys
模擬鍵盤正常輸入字符
ele.send_keys("asdfj") 使用簡單的模擬元素的輸入不須要導入上面的包。當輸入圖片中複雜的組合
須要導包。
有時候ele.send_keys()第一次發送字符會失敗,不知道什麼緣由。通常先發送一個空
ele.send_keys( ‘ ’ )
send_keys()是元素屬性的方法
Key.ENTER 等是Keys包中的屬性
3.對話框處理及登陸測試
a.對話框窗口處理:(是那種網頁中有個聊天的窗口那種)
經過查找元素找到對話框的關閉元素
而後元素點擊關閉 就關閉了
b.登陸窗口
查找登陸窗口的元素
輸入帳戶和密碼
查找登陸元素,點擊登陸
4.多窗口切換
先訪問百度,而後搜索到另外的頁面進入
可是此時打開的是兩個窗口,百度窗口和搜索的窗口
此時能夠查看窗口全部的句柄 d.window_handles 返回的是列表
d.current_window_handle 查看全部句柄
當有多個窗口在多個窗口中切換
d.switch_to_window(d.window_handles[1]) 切換到特定的窗口
d.current_url 查看窗口當前的URL
d.close() 切換到特定窗口後 能夠進行窗口關閉
d.quit() 退出,全部窗口都關閉了
5.腳本中加入等待的方法
a.Python自己time模塊的sleep方法
b.selenium 模塊中的等待方法
implicitly_wait() 針對全部的控件查找 找不到超時
WebDriverWait 針對某一個操做
d.implicitly_wait(5) 單位是秒 該語句後面的查找元素都知足此規則
當查找的元素不存在時,查詢時間超過5秒纔會報錯 找到時會立馬返回
from selenium.webdriver.support.ui import WebDriverWait
def get_ele_times(driver,times,func)
return WebDriverWait(driver,times).until(func) 這個方法的返回值就是func的返回值
此時將以前查找元素的語句ele=b.find_element_by_id('id1')更改成
ele=get_ele_times(b,10, lambda b: b.find_element_by_id('id1')) 超時的時間是10秒 只針對該查詢
6.alert對話框處理
alert彈出框鼠標右擊沒法檢查元素,此時經過其餘方法來操做
alter = b.switch_to_alert()
alter.accept()
alter.text 查看彈出框的文本
alter.dismiss()