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文件即可。

  • 相关阅读:
    2015531 网络攻防 Exp1 PC平台逆向破解(5)M
    2017-2018-1 20155331 嵌入式C语言
    20155330 《网络对抗》 Exp9 web安全基础实践
    20155330 《网络对抗》 Exp8 Web基础
    20155330 《网络对抗》 Exp7 网络欺诈防范
    20155330 《网络对抗》 Exp6 信息搜集与漏洞扫描
    20155330 《网络对抗》 Exp5 MSF基础应用
    20155330 《网络攻防》 Exp4 恶意代码分析
    20155330 《网络攻防》 Exp3 免杀原理与实践
    20155330 《网络对抗》 Exp2 后门原理与实践
  • 原文地址:https://www.cnblogs.com/lirongyang/p/12052613.html
Copyright © 2011-2022 走看看