python3 --selenium常用方法总结
来源:互联网 发布:linux mmap使用 编辑:程序博客网 时间:2024/06/03 15:53
介绍
selenium是一个web层的自动测试框架,已经支持了许多语言,Java呀,Python呀。。这里我用的因为是Python3,所以总结记录一下常用到的api。
selenium的驱动方法
先说驱动,若没有驱动,则万事不能开始。看下面代码:
驱动下载及配置请看第一篇相关博客:
http://blog.csdn.net/s740556472/article/details/78150666
#导入selenium下的webdriverfrom 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
#回到默认的framedriver.switch_to.default_content()
#回到父级的framedriver.switch_to.parent_frame()
触发双击事件
#鼠标事件,导入ActionChainsfrom 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获取不到对应元素的焦点。
- 细心、耐心,一步一步来,最终将脚本的每一步执行想成人去操作浏览器即可。
至此完!~
阅读全文
0 0
- python3 --selenium常用方法总结
- selenium 常用方法总结
- selenium python 常用方法总结
- Python Selenium 常用方法总结
- Selenium常用的方法总结
- Python Selenium 常用方法总结(不断补充)
- Selenium常用的方法
- selenium封装常用方法
- selenium常用方法
- selenium webdriver 常用方法
- Python Selenium 常用方法
- Selenium常用方法1
- Selenium常用方法2
- Selenium常用的方法
- Selenium+常用的方法(Java)
- Selenium常用方法的封装
- 字符串常用内置方法-python3
- Selenium 操作对象方法总结
- Java中内存的引用(详细)
- C程序的学习
- 简单理解"use strict"
- cqa&retrieval based chatbot note
- iOS推送javaPNS源码解析三,服务器类
- python3 --selenium常用方法总结
- Fibonacci数列
- Android自定义View画圆+进度条+自定义View梯形
- Qt5与https
- 第十五天总结
- Retrofit结合rxjava使用
- Mvp使用
- iOS推送javaPNS源码解析四,证书管理类
- leetcode---longest-substring-without-repeating-characters---字符串