zoukankan      html  css  js  c++  java
  • (六十)Selenium Grid2的Remote应用之参数化平台及浏览器

    随笔记录方便自己和同路人查阅。

     

    #------------------------------------------------我是可耻的分割线-------------------------------------------

    参数化平台及浏览器

    通过Selenium Server可以轻松地创建本地节点。而Remote的作用就是配置测试用例在这些节点上执行,下面就通过例子来演示他们两者的组合。

    在本机打开cmd命令提示符窗口,分别启动一个hub和两个node节点。

    下面修改脚本使其在不同的节点和浏览器上运行。

    from selenium.webdriver import Remote
    
    #定义主机与浏览器
    lists = {'http://127.0.0.1:4444/wd/hub':'chrome',
             'http://127.0.0.1:5555/wd/hub':'firefox',
             'http://127.0.0.1:5556/wd/hub':'internet explorer'
    
    }
    
    #通过不同的浏览器执行脚本
    for host,browser in lists.items():
        print(host,browser)
        driver = Remote(command_executor=host,
                        desired_capabilities={'platform':'ANY',
                                              'browserName':browser,
                                              'version':'',
                                              'javascriptEnabled':True
                                              }
                        )
        driver.get('http://www.baidu.com')
        driver.find_element_by_id('kw').send_keys(browser)
        driver.find_element_by_id('su').click()
        driver.close()

    首先,创建lists字典,定义不同的主机IP、端口号及浏览器。然后,通过for循环读取lists字典中的数据作为Remote()的配置信息,从而使脚本在不同的节点及浏览器下执行。

    1. 启动远程node

    我们目前的hubnode都是在同一台主机上,要想在启动主机上启动node,则必须满足以下要求。

    * 本地hub主机与远程node主机之间可以用ping命令连通。

    * 远程主机必须安装用例执行的浏览器及驱动,并且驱动要放在环境变量path的目录下。

    * 远程主机必须安装Java环境,因为需要运行Selenium Server

    1. 操作步骤

    启动本地hub主机(本地主机IP为:172.16.10.66)。

    java -jar selenium-server-standalone-3.141.59.jar -role hub

    启动远程node主机(操作系统:UbuntuIP地址:172.16.10.34)。

    $java -jar selenium-server-standalone-3.141.59.jar -role node -port 5555 -hub http://172.16.10.66:4444/grid/register

    设置端口号为:5555,指向hub主机IP172.16.10.66

    修改远程主机的IP地址及端口号,在其上面的Firefox浏览下运行脚本。

    from selenium.webdriver import Remote
    
    #定义主机与浏览器
    lists = {'http://127.0.0.1:4444/wd/hub':'chrome',
             'http://127.0.0.1:5555/wd/hub':'firefox',
             'http://172.16.10.34:5556/wd/hub':'internet explorer'
    
    }
    
    #通过不同的浏览器执行脚本
    for host,browser in lists.items():
        print(host,browser)
        driver = Remote(command_executor=host,
                        desired_capabilities={'platform':'ANY',
                                              'browserName':browser,
                                              'version':'',
                                              'javascriptEnabled':True
                                              }
                        )
        driver.get('http://www.baidu.com')
        driver.find_element_by_id('kw').send_keys(browser)
        driver.find_element_by_id('su').click()
        driver.close()

    现在再来运行脚本,你将会在172.16.10.34主机上看到脚本被执行。

    小技巧:在启动Selenium Server时,每次都要输入一长串命令,非常麻烦。我们可以将启动命令生成批处理文件,方法很简单。首先创建startup.bat文件,例如,Selenium Server存放于Dselenium目录下,那么可以在.bat文件中输入:

    java -jar D:\selenium\selenium-server-standalone-3.141.59.jar -role hub然后,在需要启动Selenium Server的时候双击startup.bat文件即可。

  • 相关阅读:
    Java基础之集合Collection一:
    Java基础之字符串String:
    Java基础之Map学习代码示例二:
    Jav基础之字符串缓冲区StringBuffer:
    Java基础之TreeSet集合使用泛型、比较器排序示例:
    Java基础之Map学习代码示例一:
    Java基础之StringBuilder
    Java基础之泛型限定的使用示例:
    Java基础之泛型的应用
    spark.primitives 包中的几个基本类
  • 原文地址:https://www.cnblogs.com/lirongyang/p/12052613.html
Copyright © 2011-2022 走看看