(六十)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文件即可。

原文地址:https://www.cnblogs.com/lirongyang/p/12052613.html