2023年6月26日发(作者:)
Hub 和rc Session失效机制:
Rc启动浏览器后,会建立内部的session机制,在session未失效前这个资源将被占用,所以这里会有一个失效机制:
l
调用()后
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: -role hub
l
Rc启动命令:
n
java -jar D: -role node -hub host:port/grid/register
l
加入日志功能:
n
java -jar D: -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启动命令加-=D:
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里面或者可以通过 来设置。
l
指定参数启动chrome
上图代码为指定以窗口最大化启动chrome,es用于在chrome启动时
给chrome设置参数。
加载chrome拓展:
加载用户设置:
设置chrome的安装目录:
设置网络代理:
l
日常问题
n
当使用RemoteWebDriver时,出现【get the The path to the chromedriver executable must
be set by the system property 】问题时,首先要检查chrome是否在系统变量路径里面或者是否在调用时设置这个系统属性。
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包括在 里面,也就是不需要做额外的配置和额外的文件下载。驱动程序会携带一个xpi文件,当启动驱动程序的时候会添加到火狐拓展程序列表中。
l
重要参数
可以通过perty或者-DpropertyName value 来设置
n
:设置火狐的安装目录
n
e :设置当启动火狐时的用户数据配置。默认启动一个webdrive的匿名 配置
n
:javascript的输出日志文件目录
n
e:输出 stdout/stderr 类型的日志到日志文件里面
n
_profile:确定是否可以删除零时文件和配置
l
运行firebug
通过下载一个火狐插件和以上代码实现运行时firebug。
l
-Beta- load fast preference
此参数用于在页面未加载完全之前,调用click和get操作,但是本特性会导致相关的异常,因为会某一些元素未初始化的状态。并且本参数只有火狐拥有,其他浏览器不拥有本参数特性。
发布者:admin,转转请注明出处:http://www.yc00.com/news/1687755999a39929.html
评论列表(0条)