Selecnium grid 参数配置,及chrome,ie,firefox设置参数

[复制链接]
admin 发表于 2019-3-16 15:05:50 | 显示全部楼层 |阅读模式
Hub 和rc Session失效机制:
Rc启动浏览器后,会建立内部的session机制,在session未失效前这个资源将被占用,所以这里会有一个失效机制:
l 调用Driver.quit()后
l 浏览器在没有任何操作或者已经关闭后,时间超过timeout设置的值时
当以上两种情况发生的时候,本session将失效。
场景运行环境限制:
l 一个rc多个不同浏览器运行
l 一个rc不能同时启动多个相同浏览器运行
l 本机多个rc不可以启动多个相同浏览器运行

二、Selenium grid 环境依赖
JDK 5+
三、Selenium grid 关键字描述
浏览器驱动
Selenium使浏览器动起来,并不是那么简单,而是通过一个浏览器驱动使其动起来。每种浏览器selenium团队都为其开发了一个驱动程序。这个驱动程序起着桥接的作用,连接着浏览器和selenium。
四、Seleniumgrid 命令列表
l Hub启动命令:
n java -jar D:\AutoService\selenium-server-standalone-2.24.1.jar -role hub
l Rc启动命令:
n java -jar D:\AutoService\selenium-server-standalone-2.24.1.jar -role node -hub http://host:port/grid/register
l 加入日志功能:
n java -jar D:\AutoService\selenium-server-standalone-2.24.1.jar -role hub -log 路径
l 自定义浏览器名称:
n Rc启动命令加 -browser browserName=chrome,platform=ANY
n 目前,浏览器设置只支持默认列表中的关键字
n browserName

u android,

u chrome,

u Firefox

u Htmlunit

u internet explorer

u Iphone

u Opera

n Platform
n WINDOWS
n LINUX
n MAC
l 设置浏览器驱动所在目录:
n Rc启动命令加-Dwebdriver.chrome.driver=D:\AutoService\chromedriver.exe

l 设置客户端超时时间:
n hub启动命令加-timeout 20
n 实际上是不需要设置timeout这个参数,由于在使用webdriver时在关闭浏览器时,将会使session关闭。


四、各大驱动配置描述
(一)chromeDriver
l chromeDriver
Chrome Driver会单独的启动一个监听端口来进行通信,当selenium发过来请求时,会往本端口发送请求来通信,所有的selenium浏览器驱动程序都遵循这一机制来实现。chromeDriver是一个可执行文件,用于selenium和浏览 器传输数据。
l 要求
Selenium的要求为把chrome浏览器安装到指定的目录。上图为安装目录要求。
l 入门
上图为创建一个chrome实例,不过在这之前,需要明确是否chrome的驱动程序是否存在于你的path里面或者可以通过webdriver.chrome.driver 来设置。
l 指定参数启动chrome

上图代码为指定以窗口最大化启动chrome,chrome.switches用于在chrome启动时
给chrome设置参数。
加载chrome拓展:

加载用户设置:

设置chrome的安装目录:


设置网络代理:

l 日常问题
n 当使用RemoteWebDriver时,出现【get the The path to the chromedriver executable must be set by the webdriver.chrome.driver system property 】问题时,首先要检查chrome是否在系统变量路径里面或者是否在调用时设置webdriver.chrome.driver这个系统属性。

n Cookie只能获取键值对
n 在富文本文档里面不能输入文字
n 不能指定自定义的配置
n HTML5的接口未实现


(二)IEDriver
l Internet explorer
IEDriver 确实是一个头疼的事情,官方的IE selenium驱动在IE6,7,8,9下测试过,并且对于着这样的组合windows xp,windows vista and windows7.
IEDriver分为两个版本:
n 32位版本
n 64位版本

很显然,在选择版本时需要按照机器的类型进行选择,如果硬件和操作系统为64位,请选择64位的驱动,反之选择32位。

l 命令参数

n --port:指定驱动程序监听的端口
n --host:指定驱动程序的IP地址,默认为本地
n --log-level:指定日志级别
n --log-file:指定日志的完整的目录和日志文件名字

l 必须的配置
n 初始化下载并且添加到运行环境驱动文件
n 在window vista 和window 7下面,需要设置IE的保护模式在相同的值
n IE缩放需要正确的设置为100%,否则会出现坐标问题
l IE本地事件
IEDriver通过本地事件模拟浏览器操作,他属于系统级别的事件,但是在这种情况会出现窗口焦点和鼠标悬浮问题。

l 浏览器焦点
在多个浏览器竞争浏览器焦点的问题上一直都是一个问题,而并没有好的解决方案,目前来说,这其实是一个优先级的问题,主流的观点为先来先得,先来的先执行完了才能执行后者。

l 鼠标悬浮事件
当你的鼠标指针在窗口边界时,鼠标悬浮效果无法体现,因为IE在这个时候会做重复事件的碰撞检测,而鼠标悬浮效果是非常的短暂的,所以导致了效果无法体现。目前webDriver开发团队无法解决这个问题。


(三)firefoxDriver

l firefoxDiver
n firefoxDiver包括在 selenium-server-stanalone.jar 里面,也就是不需要做额外的配置和额外的文件下载。驱动程序会携带一个xpi文件,当启动驱动程序的时候会添加到火狐拓展程序列表中。
l 重要参数
可以通过System.setProperty或者-DpropertyName value 来设置
n Webdriver.firefox.bin:设置火狐的安装目录
n webdriver.firefox.profile :设置当启动火狐时的用户数据配置。默认启动一个webdrive的匿名 配置
n Webdriver.log.file:javascript的输出日志文件目录
n Webdriver.firefox.logfile:输出 stdout/stderr 类型的日志到日志文件里面
n webdriver.reap_profile:确定是否可以删除零时文件和配置
l 运行firebug

通过下载一个火狐插件和以上代码实现运行时firebug。
l -Beta- load fast preference

此参数用于在页面未加载完全之前,调用click和get操作,但是本特性会导致相关的异常,因为会某一些元素未初始化的状态。并且本参数只有火狐拥有,其他浏览器不拥有本参数特性。


【智云杂货铺 bbs.0936sht.com】
回复 论坛版权

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则