zoukankan      html  css  js  c++  java
  • 安装浏览器驱动和测试环境参数化

     一、安装浏览器驱动 

      Webdriver是一个远程控制界面,作为一种远程进程程序指示Web浏览器行为,所以必须安装浏览器驱动才能获得浏览器对象。

       Firefox浏览器驱动默认在Webdriver库中,可以直接调用,其他浏览器驱动需要手动下载:http://www.seleniumhq.org/download/

      下载浏览器驱动并解压后(例如ChromeDriver_win32.zip,解压得到chrome.driver.exe文件),将可执行文件放置到C:Python27目录下

     1 #coding=utf-8
     2 from selenium import webdriver
     3 from selenium.common.exceptions import WebDriverException
     4 from time import sleep
     5 
     6 driver = webdriver.Chrome()
     7 driver.get('http://www.baidu.com')
     8 
     9 try:
    10     driver.find_element_by_id("kw").send_keys("phantomjs")
    11     driver.find_element_by_id('su').click()
    12     sleep(3)
    13     driver.get_screenshot_as_file("D:\baidu_ok.jpg")
    14 except WebDriverException as mgs:
    15     print mgs
    16     driver.get_screenshot_as_file("D:\baidu_error.jpg")
    17 finally:
    18     driver.quit()

    如果程序能调动响应浏览器,则浏览器安装成功,截图如下:

    二、搭建测试环境

      Selenium Grid是用来在不同的主机上建立主节点(hub)和分支节点(node)进行分布式测试的工具,不同的节点搭建不同的测试环境(操作系统,浏览器),这样使得主节点上的测试用例在不同的分支节点上运行可以得到不同环境的执行结果。

      1.下载、配置、运行Selenium Server

      下载地址:http://www.seleniumhq.org/download/,下载完成将得到selenium-server-standalone-xxx.jar,由于jar包由java开发,所以运行还需要配置java环境。

      2.配置Java环境

      下载地址:http://www.oracle.com/technetwork/java/javase/downloads/index.html,点击下载JDK,设置安装环境,然后设置环境变量:

      win10系统,点击此电脑—系统属性—高级系统设置—环境变量——新建:

    #新建
    变量名:JAVA_HOME
    变量值:C:Program Files (x86)Javajdk1.8.0_91        //要根据自己的实际路径配置
    变量名:CLASS_PATH
    变量值:.;%JAVA_HOME%libdt.jar;%JAVA_HOME%lib	ools.jar; 
    
    #找到path变量,编辑,追加
    变量名:path
    变量值:C:Program Files (x86)Javajdk1.8.0_91in;C:Program Files (x86)Javajdk1.8.0_91jrein;

      检查java环境是否配置成功

      3.运行Selenium Server

      将下载的selenium-server-standalone-2.53.0.jar包放在selenium文件夹下,执行java -jar selenium-server-standalone-2.53.0.jar命令启动Selenium Server。

    三、Selenium Grid启动

      Selenium Grid远程执行测试代码需要同时启动一个hub和至少一个node。hub默认端口号为4444,node默认5555。若一台主机上要启动多个node,则需要指定端口号。

    #selenium-server-standalone-xxx.jar -role hub
    selenium-server-standalone-xxx.jar -role hub
    
    #selenium-server-standalone-xxx.jar -role node
    selenium-server-standalone-xxx.jar -role node -port 5555
    selenium-server-standalone-xxx.jar -role node -port 5556
     1 from selenium.webriver import Remote
     2 
     3 #调用remote方法
     4 driver = Remote(command_executor ='http://127.0.0.1:4444/wd/hub',
     5                        desired_capabilities ={'platform':'ANY',
     6                                                      'browserName':'chrome'
     7                                                      'version':''
     8                                                      'javascriptEnabled':'True'
     9                                                
    10     }
    11 )  
    12 
    13 driver.get("http://www.baidu.com")
    14 driver,find_element_by_id("kw").send_keys('remote')
    15 driver.find_element_by_id("su").click()
    
    16 driver.quit()                      

     四、参数化测试环境

       Selenium Server创建本地节点和远程节点,Romote配置测试用例在这些节点上执行。

      本机启动如下节点

    selenium-server-standalone-2.53.0.jar -role hub
    selenium-server-standalone-2.53.0.jar -role node -port 5555
    selenium-server-standalone-2.53.0.jar -role node -port 5556
    
     1  from selenium.webriver import Remote
     2   
     3   定义主机和浏览器
     4   lists = {'http://127.0.0.1:4444/wd/hub':'Firefox',
     5            'http://127.0.0.1:5555/wd/hub':'Chrome',
     6            'http://127.0.0.1:5556/wd/hub':'Phantomjs',
     7   
     8   }
     9   
    10  for host,browser in lists:
    11      print (host,browser)
    12      driver = Remote(command_executor = host,
    13                      desired_capabilities ={'platform':'ANY',
    14                                             'browserName':browser
    15                                             'version':''
    16                                             'javascriptEnabled':'True'
    17                                                  
    18       }
    19   )  
    20  
    21      driver.get("http://www.baidu.com")
    22      driver,find_element_by_id("kw").send_keys('remote')
    23      driver.find_element_by_id("su").click()
    24  
    25      driver.quit()  
  • 相关阅读:
    android 启动报错
    android 百度地图
    android LayoutInflater使用
    spring mvc No mapping found for HTTP request with URI [/web/test.do] in DispatcherServlet with name 'spring'
    sql mysql和sqlserver存在就更新,不存在就插入的写法(转)
    jsp include
    json 解析
    css
    Scrapy组件之item
    Scrapy库安装和项目创建
  • 原文地址:https://www.cnblogs.com/Ryana/p/6204724.html
Copyright © 2011-2022 走看看