Python使用selenium(二)

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()

相關文章
相關標籤/搜索