Selenium笔记

浏览器:Firfox chrom ie
插件:firebug    firepath   selenium IDE
Selenium IDE:使用说明
打开网页  open(URL)命令
注释   key word
等待(毫秒)  pause
后退 go back
刷新 refresh
最大化 windowmaxmize
单击 click
输入 type
select 下拉列表框
close  关闭

Selenium的安装与Firefox配置https://blog.csdn.net/qq_34908107/article/details/80533338


断言
断言常被用的4种模式+5种手段
Assert
  断言失败的时候,该测试终止
verify
  verify断言失败的时候,该测试将继续执行,并将错误计入日显示屏,也就是说允许此当个验证通过,确保应用程序在正确的页面上,提高脚本的伸缩性
waitfor
  用于等待某些条件变为真,可以用于AJAX应用程序的测试,如果条件为真,他们将立即成功执行,如果该条件不为真,则将失败并暂停测试,直到超过当前所设定的超时间
  一般跟setTimeout时间一起用
store
  store定义变量,可以获取页面的相关元素进行判断
5种手段:
  Title获取页面的标题
  Value获取元素的值
  Text获取元素文本信息
  Table获取元素的标签
  Element获取当前的元素

Css定位https://www.cnblogs.com/surewing/p/7862362.html
css常用的定位方法:
1、find_element_by_css_selector()
2、#id 选择器根据id属性来定位元素
3、.class 选择器,根据class属性来定位元素
4、[attribute='value']根据属性来定位元素
5、element>element根据元素层级来定位 父元素>子元素

xpath
xpath的层级与逻辑定位https://www.cnblogs.com/surewing/p/7862264.html
xpath定位--绝对与相对的定位https://www.cnblogs.com/surewing/p/7862138.html

#加载浏览器驱动
driver = webdriver.Firefox()

#打开网页
driver.get('http://www.baidu.com/')

#关闭浏览器
driver.close() //关闭当前页面
driver.quit() //关闭所有由当前测试脚本打开的页面

#调用html抬头,获取当前窗口的title
driver.title

#窗口最大化
driver.maximize_window()

#自定义窗口大小
driver.set_window_size(400,800)

#刷新
driver.refresh()

#浏览器前进后退
driver.back() //回到上一个页面
driver.forward() //切换到下一个页面

隐式等待
 driver.implictly_wiat('秒')    #implicity_wait()只针对find的方法有效,对获取界面title是没有效果的
 
 截图并保存成为文件 https://www.cnblogs.com/surewing/p/7867955.html
 driver.get_screenshot_as_file(r'路径')
 对单个元素进行截图
 ele=driver.find_element_by_id('kw')
 
 多窗口切换 https://www.cnblogs.com/surewing/p/7867760.html
 获取窗口句柄selenium_index = driver.current_window_handle
 跳转窗口 driver.swithch_to.window(selenium_index)
 
警告弹窗处理 https://www.cnblogs.com/surewing/p/9432230.html
driver.switch_to.alert.accept()  #点击OK
driver.switch_to.alert.text # 得到对话框内容
driver.switch_to.alert.dismiss()#点击关闭
driver.switch_to.alert.send_keys()# 输入内容这种就用于上述的图3 的情况

上传文件
send_keys(r"C:\Users\Administrator\Desktop\3.png")

滚动条 https://www.cnblogs.com/surewing/p/7867955.html
js="var action=document.documentElement.scrollTop=10000"
driver.execute_script(js)

获取cookie值  https://www.cnblogs.com/surewing/p/7868037.html
cookie=driver.get_cookies()

验证码cookie跳过  https://www.cnblogs.com/surewing/p/7872704.html
抓包Fidedler  passport.baidu.com 中BAIDUID、BDUSS
driver.add_cookie({'name':'BAIDU','value':'值'})
driver.add_cookie({'name':'BDUSS','value':'值'})
driver.refresh()

frame嵌套页面元素的定位 https://www.cnblogs.com/surewing/p/7867478.html
driver.switch_to_frame("search") #XML内查frame值

鼠标操作 https://www.cnblogs.com/surewing/p/7865859.html
from selenium.webdriver.common.action_chains import ActionChains
定位坐标生成对象element
双击操作
element=driver.find_element_by_css_selector("#kw")
ActionChains(driver).double_click(element).perform()
右击操作
 ActionChains(driver).context_click(element).perform()
 鼠标悬停
 ActionChains(driver).move_to_element(element).perform()
 
 键盘操作 https://www.cnblogs.com/surewing/p/7866438.html
 from selenium.webdriver.common.keys import Keys
 定位元素坐标
 搜索框里面的内容进行Ctrl+a的操作,全选
 driver.find_element_by_css_selector("#kw").send_keys(Keys.CONTROL,'a')
 搜索框里面的内容,进行ctrl+c的操作,复制
 driver.find_element_by_css_selector("#kw").send_keys(Keys.CONTROL,'c')
 把刚才复制的内容,粘贴到搜狗的搜索框里面,这里通过CSS定位,使用了CSS定位(#id)来定位的
 driver.find_element_by_css_selector("#query").send_keys(Keys.CONTROL,'v')

posted @ 2018-09-04 09:58  ssyyhh  阅读(276)  评论(0编辑  收藏  举报