介绍
在selenium的基础上进行了封装,使用更加便捷,并且持续更新中,突出亮点为:
采用链式调用,即autoclick.select().click()或者autoclick.select().send_key(value),使调用非常方便。
默认采用了隐式等待,在selenium隐式等待的基础上进行了封装,可根据自己的要求配置隐式等待时间或者使用默认等待时间。
可选择等待超时后的行为:抛出异常还是继续执行,此功能在网络延迟,页面元素不能及时加载时显得尤为重要。
目前封装的功能包括:
打开页面
初始化浏览器
退出并关闭窗口
关闭当前窗口
切换标签页
刷新
前进
后退
选择
点击
输入
截图
执行javascript脚本
使用方法(autoclick)
引入autoclick.py
from autoclick import AutoClick
使用默认配置初始化AutoClick
autoclick = AutoClick()
打开页面
autoclick.open(target_page)
选择元素
autoclick.select(by,value)
by: selenium 的默认查找方式,即find_element()的参数 value:方式所对应的值
点击 点击最近一次选择的元素
autoclick.click(jump=True)
jump:页面是否跳转 此参数作用为,如果页面跳转会自动调用autoclick.switch_window()来选择最新的窗口句柄,提高效率
点击还可以链式调用:
autoclick.select(by,value).click()
在选择后执行点击,通过链式调用提高开发效率
输入 输入与点击使用方法类似
autoclick.select(by,value).send_key(value)
执行javascript脚本
autoclick.execute(js)
刷新
autoclick.refresh()
后退
autoclick.back()
前进
autoclick.forword()
切换窗口句柄
autoclick.switch(index=0)
默认切换至最新窗口句柄,可根据需要传入index参数,最新为-1,以此类推
关闭窗口(程序不退出)
autoclick.close()
退出程序
autoclick.quit()
使用方法(autoclickjs)
autoclickjs是继承了autoclick,其主要功能是使用JS命令来执行命令,亮点是健壮性强,如果元素还未加载完,会继续尝试等待元素加载后执行命令,这尤其在执行点击和输入命令时显得尤为重要和便捷
调用例子
from autoclickjs import AutuClickJS
auto = AutuClickJS()
auto.open('https://www.xuexi.cn/')
auto.click_by_classname('text-ellipsi',1)
很简单,别的不用管,不用担心未找到元素报错程序终止,因为它会等待元素加载,继续尝试执行命令。 因为click_by_classname是通过执行document.getElementsByClassName() ,所以click_by_classname()第二个参数便是数组下标。