介紹
在selenium的基礎(chǔ)上進行了封裝,使用更加便捷,并且持續(xù)更新中损合,突出亮點為:
采用鏈式調(diào)用,即autoclick.select().click()或者autoclick.select().send_key(value),使調(diào)用非常方便瓜挽。
默認采用了隱式等待,在selenium隱式等待的基礎(chǔ)上進行了封裝征绸,可根據(jù)自己的要求配置隱式等待時間或者使用默認等待時間久橙。
可選擇等待超時后的行為:拋出異常還是繼續(xù)執(zhí)行,此功能在網(wǎng)絡(luò)延遲管怠,頁面元素不能及時加載時顯得尤為重要淆衷。
目前封裝的功能包括:
打開頁面
初始化瀏覽器
退出并關(guān)閉窗口
關(guān)閉當前窗口
切換標簽頁
刷新
前進
后退
選擇
點擊
輸入
截圖
執(zhí)行javascript腳本
使用方法(autoclick)
引入autoclick.py
from autoclick import AutoClick
使用默認配置初始化AutoClick
autoclick = AutoClick()
打開頁面
autoclick.open(target_page)
選擇元素
autoclick.select(by,value)
by: selenium 的默認查找方式,即find_element()的參數(shù) value:方式所對應(yīng)的值
點擊 點擊最近一次選擇的元素
autoclick.click(jump=True)
jump:頁面是否跳轉(zhuǎn) 此參數(shù)作用為排惨,如果頁面跳轉(zhuǎn)會自動調(diào)用autoclick.switch_window()來選擇最新的窗口句柄吭敢,提高效率
點擊還可以鏈式調(diào)用:
autoclick.select(by,value).click()
在選擇后執(zhí)行點擊,通過鏈式調(diào)用提高開發(fā)效率
輸入 輸入與點擊使用方法類似
autoclick.select(by,value).send_key(value)
執(zhí)行javascript腳本
autoclick.execute(js)
刷新
autoclick.refresh()
后退
autoclick.back()
前進
autoclick.forword()
切換窗口句柄
autoclick.switch(index=0)
默認切換至最新窗口句柄暮芭,可根據(jù)需要傳入index參數(shù)鹿驼,最新為-1,以此類推
關(guān)閉窗口(程序不退出)
autoclick.close()
退出程序
autoclick.quit()
使用方法(autoclickjs)
autoclickjs是繼承了autoclick,其主要功能是使用JS命令來執(zhí)行命令辕宏,亮點是健壯性強畜晰,如果元素還未加載完,會繼續(xù)嘗試等待元素加載后執(zhí)行命令瑞筐,這尤其在執(zhí)行點擊和輸入命令時顯得尤為重要和便捷
調(diào)用例子
from autoclickjs import AutuClickJS
auto = AutuClickJS()
auto.open('https://www.xuexi.cn/')
auto.click_by_classname('text-ellipsi',1)
很簡單凄鼻,別的不用管,不用擔心未找到元素報錯程序終止聚假,因為它會等待元素加載块蚌,繼續(xù)嘗試執(zhí)行命令。 因為click_by_classname是通過執(zhí)行document.getElementsByClassName() ,所以click_by_classname()第二個參數(shù)便是數(shù)組下標膘格。