selenium常用方法总结

本文总结了Selenium WebDriver的一些核心方法,包括驱动配置、浏览器操作、元素定位、填充值、切换iframe、触发事件和处理窗口。通过示例代码详细介绍了如何使用Python进行自动化测试。
摘要由CSDN通过智能技术生成

selenium的驱动方法
先说驱动,若没有驱动,则万事不能开始。看下面代码: 
驱动下载及配置请看第一篇相关博客: 
http://blog.csdn.net/s740556472/article/details/78150666

#导入selenium下的webdriver
from selenium import webdriver
#IE的驱动位置
iedriver = "D:\python3.6\Scripts\IEDriverServer.exe"
#加载ie驱动的方法
driver = webdriver.Ie(iedriver)
#加载Chrome驱动的位置
chromedriver = "D:\python3.6\Scripts\chromedriver.exe"
#将Chrome的驱动通过路径直接放入方法中
driver = webdriver.Chrome(chromedriver)

驱动成功后,通过下面的方法调用浏览器打开对应的网址:

#访问对应的地址,例如打开百度,此时一般
会弹出cmd黑框,那个是驱动的黑框,不要关闭
driver.get('www.baidu.com')

各种API
获取html源代码中的焦点
所有方法都是通过driver作为对象而进行驱动的,所以要是模块化方法,必须将driver传入其中,例如下面:

#登录方法
def login(driver):
    #通过节点名称获取焦点
    driver.find_element_by_name('userName')
    #通过节点id获取焦点
    driver.find_element_by_id('userName')
    #通过xpath获取焦点
    driver.find_element_by_xpath('/html/frameset/frameset/frame[1]')

这里要说的是xpath,我们可以通过F12调用浏览器自带的工具取查看,右键节点->copy->copy xpath 即可。

捕获焦点点击按钮
#点击添加按钮
driver.find_element_by_name('buttonInsert').click()
#各种组合都可以
driver.find_element_by_id('buttonInsert').click()
driver.find_element_by_xpath('/xxx/xxx/xx').click()

捕获焦点填充值
结合上面的方法,获取焦点后填充值的api

#方法一:
a = driver.find_element_by_name('userName')
a.send_keys('root')
#方法二:
driver.find_element_by_name('userName').send_keys('root')

切换Iframe
    #通过xpath加载frame
    frameset = driver.find_element_by_xpath('/html/frameset/frameset/frame[1]')
    #跳入frame中
    driver.switch_to.frame(frameset)

跳出iframe
#回到默认的frame
driver.switch_to.default_content()

#回到父级的frame
driver.switch_to.parent_frame()

触发双击事件
#鼠标事件,导入ActionChains
from selenium.webdriver.common.action_chains import ActionChains
#分组双击
jobGroup = driver.find_element_by_name('jobDetailDto.jobGroup')
ActionChains(driver).double_click(jobGroup).perform()

下拉框选项
#下拉框
from selenium.webdriver.support.select import Select
#定位到codeselect下
codeselect = driver.find_element_by_name('codeselect')
#获取焦点后,根据值点击对应的选项
Select(codeselect).select_by_value('xxx')

对浏览器新打开的窗口进行焦点获取
#新弹出来的框进行查询点击操作
#获取所有窗口的handle,若handle不是当前窗口则切换
handles = driver.window_handles
    for handle in handles:
        if handle != driver.current_window_handle:
            driver.switch_to_window(handle)
            break

若需要切回其实的窗口,执行下面语句即可:

driver.switch_to_window(handles[0])

Tips
若执行脚本的过程中,提示找不到元素对应的焦点,这种错误多数出在:

frame未进入正确,请检查当前想获取节点处于哪个frame下,先进行跳转frame,在进行获取元素焦点的操作
检查是否是新弹出来的浏览器窗口,若是,则需要将handle切入到最新浏览器中获取元素焦点进行操作
当通过名字获取不到对应元素焦点的时候,可以考虑换一种方式获取,我在写脚本的时候发现,xpath这种方式获取元素焦点是比较靠谱的,有的时候通过by_name获取不到对应元素的焦点。
细心、耐心,一步一步来,最终将脚本的每一步执行想成人去操作浏览器即可
 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值