> Selenium Webdriver 3.X源码分析系列第7篇,该系列原则上会将整个源码分享一遍
在大家的实践当中,经常需要在不同的环境(浏览器)中执行测试,在selenium webdriver中如何来实现在不同的环境中执行测试脚本呢?
在selenium webdriver python驱动代码中提供了DesiredCapabilities类提供了相应的解决方案。
我们先看下DesiredCapabilities类定义中的文档说明
简单一句话:
基于selenium grid 构建分布式自动化测试,selenium server/selenium grid根据测试脚本构建的DesiredCapabilities参数来决定将测试脚本分发到哪台机器或设备进行测试。
一个简单的实例:
代码注释说明:
第1行:从selenium包导入了webdriver对象
第4行:设置本地的selenium grid地址,如果你的selenium grid在其他机器启动,请使用对应的ip和端口
第7-9行:构建了一个windows 10 firefox的desiredcapabilities对象,即将测试脚本分发至win10 firefox的环境运行
第12行:启动远程的webdrive服务
划重点:应该讲在需要一个相对复杂的测试环境时,才需要应用到DesiredCapabilities类提供的解决方案,尤其是需要分布式测试环境时。
下面我们看下DesiredCapabilities类提供了哪些环境:
基本上我们用的的各种浏览器、设备均有覆盖到,下面看看具体的配置源码:
一般而言,我们需要指定browserName、version、platform即可
最后总结下,在如下所示的分布式复杂环境里
是必须使用到DesiredCapabilities类提供的解决方案的。