selenium学习总结

2018-06-29 06:08:30来源:博客园 阅读 ()

新老客户大回馈,云服务器低至5折

selenium主要用来做web自动化,分1.0和2.0两个版本,1.0包括selenium IDE、selenium Grid、selenium Remote Control,2.0在1.0的基础上增加了webdriver

1)selenium IDE  是火狐的一个插件,可以在火狐中录制、回放脚本,并且形成各种语言的脚本文件,在学习中使用的是catalon插件

2)selenium Grid 做测试的并行处理,目前学习中暂未过多接触。

3)selenium RC 用例的编写及运行,是在浏览器中运行js应用,使用浏览器内置的js翻译器来翻译和执行selense命令(selenium的命令集合)

4)selenium webdriver是selenium RC的替代产品,是通过支持原生浏览器驱动来控制浏览器

  • 需要把各个浏览器的驱动文件放至Python根目录
  • pip install selenium

selenium webdriver

1.元素定位

使用webdriver主要是通过定位页面元素对其进行操作,因此元素的定位是UI自动化测试的重中之重。webdriver常用的元素定位方法有以下:

1)id       driver.find_element_by_id('username')

2)name   driver.find_element_by_name('kw')

3)xpath   driver.find_element_by_xpath("//button[@onclick=\"doLogin('null')\"]")

  • /当前节点  //任意节点
  • @属性名=属性值  text()=''       test前无@
  • 组合  driver.find_element_by_xpath("//button[@onclick=' ' and @type=' ']")
  • 下标   (//a[text()='新闻'])[2]  (//a[text()='新闻'])查出多个,用【2】定位
  • . 当前节点  ..上一个节点

2.常用API

  • 打开关闭最大化窗口

    driver = webdriver.Chrome()
    driver.get('http://172.16.1.222:8080/WoniuSales/')

    driver.maximize_window()

    driver.minimize_window()

    driver.close()   #关闭窗口

    driver.quit()  #关闭浏览器

  • 前进、后退

    driver.back()     #后退

    driver.forward()  #前进

  • 元素操作

    driver.find_element_by_id('username').click()   #点击

              driver.find_element_by_id('username').clear()   #清除

              driver.find_element_by_id('username').send_keys("内容")   #模拟键盘输入

    driver.find_element_by_id('username').text   #获取元素的文本

    driver.find_element_by_id('username').is_displayed()  #是判断存在的元素是否显示,而不是元素是否存在!

  • 设置等待时间

    ①强制等待

     from time import sleep

     sleep(3)   #执行到这一步时强制等待3秒

    ②隐式等待

     driver.implicitly_wait(30)   #相当于为所有的元素设置了一个全局的等待时间,如果找到了就不等待,没找到就等待,30秒还没找打就报错

    ③显式等待

     from selenium.webdriver.support.ui import WebDriverWait

       WebDriverWait(driver,timeout,frequency)  #每隔frequency查找一次,总共timeout秒,找到就继续,没找到等下一个间隔。

  • alert/confirm/prompt
  • 多窗口

    handle = driver.current_window_handle

    driver.switch_to().window(handle)


 

标签:

版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有

上一篇:IT前辈给出Python这五个就业方向最有钱途和发展,如果是你会怎么

下一篇:爬虫安装流程