zoukankan      html  css  js  c++  java
  • Selenium笔记(二)--Webdriver了解组件、驱动要求、操控浏览器

    一、了解组件

    • API:应用程序编程接口。这是一组用来操作WebDriver的“命令”。
    • 库:一个代码模块,它包含api和实现这些api所需的代码。库是对应于具体语言的,如java的.jar文件
    • 驱动程序:负责控制实际的浏览器。大多数驱动程序是由浏览器厂家自己创建的。驱动程序通常与浏览器一起在系统上运行的可执行模块,而不是在执行测试套件的系统上。(尽管他们可能是同一系统。)
    • 框架:用于支持WebDriver套件的附加库。

    二、驱动要求,将浏览器(如,chrome)的可执行文件添加到PATH中

         官网下载chrome对应版本的可执行文件chromedriver.exe,将该执行文件放入某个文件夹,将该文件夹添加到PATH中。

      实例化chrome会话,并添加chromedriver可执行文件的路径;

    #coding:utf-8
    from selenium.webdriver import Chrome
    #设置chromedriver可执行文件的路径
    driver=Chrome(executable_path="D:Program FilesWebDriver\binchromedriver")  

    三、操控浏览器

      打开导航

    driver.get("https://www.baidu.com")

      获取当前url

    print(driver.current_url) 

      后退

    driver.back()
    

      前进

    driver.forward()
    

      刷新

    driver.refresh()
    

      获取标题

    print(driver.title) #标题
    

      窗口(id)和标签页

    driver.current_window_handle
    

      切换窗口或标签页

    driver.switch_to.window(窗口id])  

       创建新窗口(或)新标签页并且切换

      关闭窗口或标签页

    driver.close()
    

      在会话结束时退出浏览器

    当你完成了浏览器会话,你应该调用quit退出,而不是close关闭;

    driver.quit()
    

     退出将会

    • 关闭所有与WebDriver会话相关的窗口和选项卡
    • 结束浏览器进程
    • 结束后台驱动进程
    • 通知Selenium Grid浏览器不再使用,以便可以由另一个会话使用它(如果您正在使用Selenium Grid)

    调用quit()失败将留下额外的后台进程和端口运行在机器上,这可能在以后导致一些问题。

     有的测试框架提供了一些方法和注释,您可以在测试结束时放入teardown()方法中。

    注意:下面使用的是pytest的teardown(),pytest学习链接

    #coding:utf-8
    from selenium import webdriver
    driver=webdriver.Chrome()
    def test_1():
        driver.get("https://www.baidu.com")
    def teardown():
        driver.quit() 

        您可以考虑使用try  finally,这样大多数语言都提供的,这样一个异常处理仍然可以清理WebDriver会话

    #coding:utf-8
    from selenium import webdriver
    driver=webdriver.Chrome()
    try:
        driver.get("https://www.baidu.com")
    finally:
        driver.quit()
    

     python的webdriver现在支持Python上下文管理器,当使用with关键字时,可以在执行结束时自动退出驱动程序。

    #coding:utf-8
    from selenium import webdriver
    with webdriver.Chrome() as driver:
        driver.get("https://www.baidu.com")
    

     Frames and Iframes

     使用WebElement

     使用name或id

     使用索引

    离开框架

    窗口管理

    获取窗口大小

    获取浏览器窗口的大小(以像素为单位)

    #coding:utf-8
    from selenium import webdriver
    with webdriver.Chrome() as driver:
        driver.get("https://www.baidu.com")
        w=driver.get_window_size().get("width")
        h=driver.get_window_size().get("height")
        print(w,h)  

     设置窗口大小

    from selenium import webdriver
    driver=webdriver.Chrome()
    driver.get("https://www.baidu.com")
    driver.set_window_size(1920,1080)  

     得到窗口的位置

     获取浏览器窗口左上角的坐标

    from selenium import webdriver
    driver=webdriver.Chrome()
    driver.get("https://www.baidu.com")
    x=driver.get_window_position().get('x')
    y=driver.get_window_position().get('y')
    print(x,y)  

     设置窗口位置

      将窗口移动到设定的位置

    from selenium import webdriver
    driver=webdriver.Chrome()
    driver.get("https://www.baidu.com")
    driver.set_window_position(0,0)
    

     最大化窗口

     扩大窗口。对于大多数操作系统,窗口将填满屏幕,而不会阻挡操作系统自己的菜单和工具栏。

    from selenium import webdriver
    driver=webdriver.Chrome()
    driver.get("https://www.baidu.com")
    driver.maximize_window()
    

     最小化窗口

    最小化当前浏览上下文的窗口。这种命令的精准行为将作用于各个特定的窗口管理器。

    最小化窗口通常将窗口隐藏在系统托盘中。

    driver.minimize_window()
    

     全屏窗口

    填充整个屏幕,类似于在大多数浏览器中按下F11

    driver.fullscreen_window()
    

     屏幕截图

    用于捕获当前浏览上下文的屏幕截图。WebDriver端点屏幕截图返回以Base64格式编码的屏幕截图

    from selenium import webdriver
    driver=webdriver.Chrome()
    driver.get("https://www.baidu.com")
    driver.save_screenshot("E:\0825.png")
    

     元素屏幕截图

    用于捕获当前浏览上下文的元素的屏幕截图。WebDriver端点 屏幕截图 返回以Base64格式编码的屏幕截图。

      

    越努力,越幸运!!! good good study,day day up!!!
  • 相关阅读:
    技术人员转型秘笈
    2007 Office System Beta2 Technical Refresh 下载
    使用Word 2007写blog
    SharePoint WebPart 用户控件包装器 HandsOn Labs
    将Office SharePoint Server 2007 Beta2安装到DC上
    Visual Studio Tools for Office “v3” CTP!
    QuickPart : 用户控件包装器 for SharePoint 2007
    Office SharePoint Server 2007 !
    说说ASP.NET 2.0的书
    闫辉的书:《程序员,建立你的商业意识》
  • 原文地址:https://www.cnblogs.com/canglongdao/p/13558899.html
Copyright © 2011-2022 走看看