zoukankan      html  css  js  c++  java
  • Selenium的webdriver

    引进的webdriver

    Selenium 2.0中的主要新功能是WebDriver API的集成。开发Selenium-WebDriver是为了更好地支持动态网页,页面元素可能会改变,页面本身不会被重新加载。WebDriver的目标是提供一个设计良好的面向对象API,为现代高级Web应用程序测试问题提供更好的支持。

    WebDriver如何“驱动”浏览器?

    Selenium-WebDriver使用每个浏览器对自动化的原生支持直接调用浏览器。它使用内置的浏览器支持自动化,直接驱动浏览器。

    WebDriver和Selenium- Server

    如果浏览器和测试将全部在同一台机器上运行,并且测试只使用WebDriver API,那么不需要运行Selenium-Server; WebDriver将直接运行浏览器。

    Selenium-WebDriver使用Selenium-Server有一些原因。

    • 正在使用Selenium-Grid将测试分布到多台机器或虚拟机(VM)上。
    • 要连接到具有特定浏览器版本的远程机器,该机器不在当前机器上。
    • 不使用Java绑定(即Python,C#或Ruby),并且想要使用HtmlUnit驱动程序

     设置Selenium-WebDriver项目

    安装Selenium意味着在一个开发中设置一个项目,这样就可以使用Selenium编写一个程序。如何做到这一点取决于编程语言和开发环境。

    Python的

    如果正在使用Python进行自动测试,那么可能已经熟悉Python的开发了。要将Selenium添加到Python环境,从命令行运行以下命令。

     pip install selenium

    通过示例介绍Selenium-WebDriver API

    WebDriver是一个自动化Web应用程序测试的工具,特别是验证它们是否按预期工作。它的目的是提供一个友好的API,它易于探索和理解,它不受任何特定的测试框架的束缚,因此它可以在单元测试项目中使用,也可以从简单的老“main”方法中使用。

    下载各个浏览器的WebDriver,将.exe文件直接放置于Python的主目录里。

     示例:

    from selenium import webdriver
    from selenium.common.exceptions import TimeoutException
    from selenium.webdriver.support.ui import WebDriverWait 
    from selenium.webdriver.support import expected_conditions as EC 
    
    # Create a new instance of the Firefox driver
    driver = webdriver.Firefox()
    
    # go to the google home page
    driver.get("http://www.google.com")
    
    # the page is ajaxy so the title is originally this:
    print(driver.title)
    
    # find the element that's name attribute is q (the google search box)
    inputElement = driver.find_element_by_name("q")
    
    # type in the search
    inputElement.send_keys("cheese!")
    
    # submit the form (although google automatically searches now without submitting)
    inputElement.submit()
    
    try:
        # we have to wait for the page to refresh, the last thing that seems to be updated is the title
        WebDriverWait(driver, 10).until(EC.title_contains("cheese!"))
    
        # You should see "cheese! - Google Search"
        print(driver.title)
    
    finally:
        driver.quit()

     

  • 相关阅读:
    原码、反码、补码,计算机中负数的表示
    [转]Vue 2.0——渐进式前端解决方案
    关于MySQL的tinyint(3)问题
    js对象的深拷贝及其的几种方法
    深入 js 深拷贝对象
    JS 数组克隆方法总结
    Undefined class constant 'MYSQL_ATTR_INIT_COMMAND'
    邮件措辞小计
    Forbidden You don't have permission to access / on this server PHP
    正则表达式
  • 原文地址:https://www.cnblogs.com/weiweim/p/8436181.html
Copyright © 2011-2022 走看看