51Testing软件测试论坛

标题: Selenium自动化开发的WebDriver的常用API [打印本页]

作者: lsekfe    时间: 2022-1-12 13:29
标题: Selenium自动化开发的WebDriver的常用API
适合项目:
测试任务明确,不会频繁变动;
每日构建后的测试验证;
比较频繁的回归测试;
软件系统界面稳定,变动少;
需要在多平台上运行相同测试案例、组合遍历型的测试,大量的重复任务;
软件维护周期长;
WebDriver API
1、定位元素 (定位一组元素为find_elements_)
根据ID find_element_by_id()
根据Name find_element_by_name()
根据Class find_element_by_class_name()
根据tag find_element_by_tag_name() tag包括<div> <input>
根据连接link
例如 <a class="demo" name="test" href="http://www.baidu.com">百度</a>
全名 find_element_by_link_text("百度")
模糊 find_element_by_partial_link_text("百")
根据XPath定位
绝对路径定位 find_element_by_xpath("/html/body/div/input[1]") html元素的路径
元素属性定位 find_element_by_xpath("//input[@id='kw']")
使用逻辑运算 find_element_by_xpath("//input[@id='kw' and @class='demo']")
使用谷歌浏览器调试,在元素上右键-Copy-Copy XPath
根据css find_element_by_css_selector()
有点像JQ,find_element_by_css_selector(".demo") #kw span>input
使用谷歌浏览器调试,在元素上右键-Copy-Copy selector
2、支持的浏览器
browser=webdriver.Chrome()
browser=webdriver.Firefox()
browser=webdriver.Edge() # Microsoft Edge
browser=webdriver.Safari()
browser=webdriver.Android()
browser=webdriver.BlackBerry()
browser=webdriver.Ie()
browser=webdriver.Opera()
browser=webdriver.PhantomJS()
3、控制浏览器 driver=webdriver.Chrome(); webdriver.Chrome()
访问 driver.get(url);
后腿 driver.back();
前进 driver.forward();
关闭 driver,quit();
刷新 driver.refresh()。
4、简单元素操作
clear() 清除文本
send_keys(*value) 模拟按键输入
click() 单元元素
submit() 表单提交
size() 返回元素尺寸
text() 获取文本
get_attribute(name) 获取属性值 类似jq的attr
is_displayed() 是否可见
5、鼠标事件 引入 from selenium.webdriver.common.action_chains import ActionChains
常用方法
perform. 执行所有ActionChains中储存的行为,类似委托
context_click() 右击
double_click() 双击
drag_and_drop(source,target) 拖动:在源元素上按住鼠标左键,然后移动到目标元素上释放
move_to_element() 鼠标悬浮
操作流程
button=driver. find_element_by_id('kw');
ActionChains(driver).context_click(button).perform();
6、键盘事件 from selenium.webdriver.common.keys import Keys
send_keys(value) 输入框输入内容
send_keys(Keys.BACK_SPACE) 删除键
send_keys(Keys.SPACE) 空格键
send_keys(Keys.TAB) Tab
send_keys(Keys.ESCAPE) 回退
send_keys(Keys.ENTER) 回车
send_keys(Keys.CONTROL,'a') 全选、复制粘贴类似
send_keys(Keys.F1) F1
7、获取验证信息
driver.title 页面title
driver.current_url 当前页面URL
8、设置元素等待
sleep() from time import sleep 单位/秒
9、多表单切换
定位到iframe元素
driver.switch_to.frame(value) iframe的id或name
switch_to.parent_frame() 跳出当前一级表单
switch_to.default_content() 调回最外层的页面
10、警告框处理 driver.switch_to_alert()
text() 返回文本信息
accept() 接受
dismiss() 解散
11、操作Cookie
get_cookies() 获取所有的cookie
get_cookie(name) 返回key为name的cookie信息
add_cookie(dict) 添加cookie, dcit是字典对象,有key、value
delete_cookie(name,option) 删除cookie,name:cookie名称,option是cookie选项,只是路径、域
delete_all_cookies()
12、调用js 代码
driver.execute_script()
13、窗口截图 一般sleep再截图
driver.getscreenshot_as_file(path) 文件路径和文件名

作者: csackk    时间: 2022-4-8 12:03
赞一个




欢迎光临 51Testing软件测试论坛 (http://bbs.51testing.com/) Powered by Discuz! X3.2