2020.6.13 Selenium 框架

发布于 2020-06-13  27 次阅读


1.复习内容

2.灵感代办

3.学习内容

  • Selenium

    1. 作用:

      • Selenium是一个用电脑模拟人操作浏览器网页,可以实现自动化,测试等!废话不多说,直接干!
    2. 使用selenium

      • 1.安装驱动
      • 2.driver = webdriver.Firefox("驱动路径") # Firefox浏览器
      • 3.查找元素,
        • find_element_by_id()
          find_element_by_name()
          find_element_by_class_name()
          find_element_by_tag_name()
          find_element_by_link_text()
          find_element_by_partial_link_text()
          find_element_by_xpath()
          find_element_by_css_selector()

      • 4.控制操作
        • 控制浏览器窗口大小
          • driver.set_window_size(480, 800)
        • 浏览器后退,前进
          • 后退 driver.back() # 前进 driver.forward()
        • 刷新
          • driver.refresh() # 刷新
    3. 常用selenium方法

      • 点击和输入
        • driver.find_element_by_id("kw").clear() # 清楚文本
        • driver.find_element_by_id("kw").send_keys("selenium") # 模拟按键输入
        • driver.find_element_by_id("su").click() # 单机元素
      • 提交
        • 可以在搜索框模拟回车操作
          • search_text = driver.find_element_by_id('kw') search_text.send_keys('selenium')
          • search_text.submit()
      • 其他
        • size: 返回元素的尺寸。
        • text: 获取元素的文本。
        • get_attribute(name): 获得属性值。
        • is_displayed(): 设置该元素是否用户可见。
    4. 鼠标操作

      • 在 WebDriver 中, 将这些关于鼠标操作的方法封装在 ActionChains 类提供。
      • ActionChains 类提供了鼠标操作的常用方法:
        • perform(): 执行所有 ActionChains 中存储的行为;
        • context_click(): 右击;
        • double_click(): 双击;
        • drag_and_drop(): 拖动;
        • move_to_element(): 鼠标悬停。
    5. 键盘操作

      • 常用键盘操作
        • send_keys(Keys.BACK_SPACE) 删除键(BackSpace)
        • send_keys(Keys.SPACE) 空格键(Space)
        • send_keys(Keys.TAB) 制表键(Tab)
        • send_keys(Keys.ESCAPE) 回退键(Esc)
        • send_keys(Keys.ENTER) 回车键(Enter)
        • send_keys(Keys.CONTROL,'a') 全选(Ctrl+A)
        • send_keys(Keys.CONTROL,'c') 复制(Ctrl+C)
        • send_keys(Keys.CONTROL,'x') 剪切(Ctrl+X)
        • send_keys(Keys.CONTROL,'v') 粘贴(Ctrl+V)
        • send_keys(Keys.F1) 键盘 F1
        • send_keys(Keys.F12) 键盘 F12
    6. 常用driver参数

      1. driver.title
      2. driver.current_url
      3. driver.window_handles
    7. 等待页面加载

      • 显示等待
        • 显式等待使WebdDriver等待某个条件成立时继续执行,否则在达到最大时长时抛出超时异常(TimeoutException)。
        • WebDriverWait类是由WebDirver 提供的等待方法。在设置时间内,默认每隔一段时间检测一次当前页面元素是否存在,如果超过设置时间检测不到则抛出异常。具体格式如下:
        • WebDriverWait(driver, timeout, poll_frequency=0.5, ignored_exceptions=None)
          
          # driver :浏览器驱动。
          
          
          # timeout :最长超时时间,默认以秒为单位。
          
          
          # poll_frequency :检测的间隔(步长)时间,默认为0.5S。
          
          
          # ignored_exceptions :超时后的异常信息,默认情况下抛NoSuchElementException异常。
          
          
          # WebDriverWait()一般由until()或until_not()方法配合使用,下面是until()和until_not()方法的说明。
          
          
          # until(method, message=‘’) 调用该方法提供的驱动程序作为一个参数,直到返回值为True。
          
          
          # until_not(method, message=‘’) 调用该方法提供的驱动程序作为一个参数,直到返回值为False。
          
          
          # expected_conditions
          

      • 隐式等待
        • 如果某些元素不是立即可用的,隐式等待是告诉WebDriver去等待一定的时间后去查找元素。 默认等待时间是0秒,一旦设置该值,隐式等待是设置该WebDriver的实例的生命周期。
        • driver.implicitly_wait(10) # seconds
    8. 切换窗口句柄/框架
      • 切换窗口,句柄方法:
        • switch_to_frame(“”)/switch_to_window(“”)
          • 可以直接使用id或者name ,也可以传入xpath对象
      • 警告框处理
        • swich_to_alert()
          • 参数
            • text:返回 alert/confirm/prompt 中的文字信息。
            • accept():接受现有警告框。
            • dismiss():解散现有警告框。
            • send_keys(keysToSend):发送文本至警告框。keysToSend:将文本发送至警告框。
      • 下拉框处理
        • 导入Select
        • select(“下拉元素”).select_by_value(‘50’)
      • 文件上传
        • 1.定位上传按钮
        • 2.send_keys(“文件路径”)
        • driver.find_element_by_name("file").send_keys('D:\\upload_file.txt') # # 定位上传按钮,添加本地文件
      • cookie操作
        • cookie要在get()之后添加,还需要refresh()一下
        • getcookies() 获得所有cookie
        • get_cookie(“key”)
        • add_cookie(字典)
        • delete_cookie() 删除cookie信息。“name”是要删除的cookie的名称,“optionsString”是该cookie的选项,
        • delete_all_cookies() 删除所有cookie
        • Cookie 选项参数
      • 调用javascript代码
        • execute_script(“js代码”)
      • 窗口截图
        • get_screenshot_as_file(“目录”)
      • 关闭浏览器
        • close()
        • quit()

    4.扩展延伸知识

5.知识内容个人梳理

6.今天都复习了之前的什么内容


Ares个人进阶之路