随笔记录方便自己和同路人查阅。
#------------------------------------------------我是可耻的分割线-------------------------------------------
参数化平台及浏览器
通过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()的配置信息,从而使脚本在不同的节点及浏览器下执行。
- 启动远程node
我们目前的hub与node都是在同一台主机上,要想在启动主机上启动node,则必须满足以下要求。
* 本地hub主机与远程node主机之间可以用ping命令连通。
* 远程主机必须安装用例执行的浏览器及驱动,并且驱动要放在环境变量path的目录下。
* 远程主机必须安装Java环境,因为需要运行Selenium Server。
- 操作步骤
①启动本地hub主机(本地主机IP为:172.16.10.66)。
java -jar selenium-server-standalone-3.141.59.jar -role hub
②启动远程node主机(操作系统:Ubuntu,IP地址: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主机IP为172.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存放于D盘selenium目录下,那么可以在.bat文件中输入:
java -jar D:\selenium\selenium-server-standalone-3.141.59.jar -role hub然后,在需要启动Selenium Server的时候双击startup.bat文件即可。