runScript(script)
在当前测试窗体的body中创建一个新的”script”标签,并在body中添加指定的命令文本。用这种方式执行脚本,通常可以比使用Selenium的”getEval”方式更简易的进行调试。要注意的是,由这种脚本标签所抛出的异常不受Selenium管理,因此当该脚本有可能会抛出异常时,你需要用try/catch块将其包含起来。
·script. –需要执行的JavaScript.片段
select(selectLocator,optionLocator)
用选项选择器从一个下拉框中选择一个选项。
选项选择器提供不同的方法从一个HTML选择元素中识别选项。(例如:选择一个指定选项,或断言一个满足某种规范的选项)有许多种形式的选择选项定位器。
·label=labelPattern:基于其标签匹配选项,如其有效文本。(默认)
〇label=regexp:^[Oo]ther
·value=valuePattern:基于其值匹配选项。
〇value=other
·id=id:基于其id匹配选项。
〇id=option1
·index=index:基于其索引匹配选项(从0开始)。
〇index=2
如果没有为选项定位器提供前缀,则默认匹配为标签行为。
参数:
·selectLocator –一个用于识别下拉菜单的元素定位器
·optionLocator –一个选项选择器(默认为标签)
selectFrame(locator)
在当前窗体中选择一个框架(你可以多次调用这个命令用于选择嵌套框架)。要选择父框架,用”relative=parent”作为定位器;要选择顶级框架,用”relative=top”。你同样可以通过基于0的索引号选择框架;用”index=0”选择第一个框架,或者用”index=2”选择第三个框架。
你同样可以直接使用一个DOM表达式来识别你要的框架。像这样:dom=frames[“main”].frames[“subframe”]
参数:
·locator –一个用于识别框架或子框架的元素定位器
selectWindow(windowID)
选择一个弹出窗体;一旦一个弹出窗体被选中,所有的命令将指向该窗体。要再次选择主窗体,将对象设定为null。
注意:window的内在JavaScript的”name”属性和被给与的window文档(通常是你实际看到的,作为最终用户,在窗体的标题栏上)的”title”之间有一个很大的不同。”name”对于最终用户通常是不可见的;它是作为第二个参数”windowName”传递给JavaScript函数window.open(url,windowName,windowFeatures,replaceFlag)(被Selenium截取)。
Selenium有许多方法用于查找被”windowID”参数所提及的窗体对象。
1.)如果windowID为null,(或是字符串”null”),则假定为用户是提交给由浏览器最初实例化的窗体。
2.)如果”windowID”参数的值是当前应用窗体的一个JavaScript变量名,则假定该变量包含一个由调用JavaScript. window.open()函数所产生的返回值。
3.)另外,selenium looks in a hash it maintains that maps string names to window “names”.
4.)如果失败了,我们将循环遍历所有已知的窗体以便试图找出适合的”title”。由于”title”不是必须唯一,因此可能会产生一些非期望的行为。
如果很难判定你所要操作的窗体的名称,你可以查看为识别通过window.open(被Selenium截取)所打开窗体的名称时所产生的selenium日志消息。在每个窗体被打开时,你通常可以看到如下信息:
debug: window.open call intercepted; window ID (你可以用于selectWindow()) is “myNewWindow”
在某些情况,Selenium会无法截取window.open的调用(例如,如果该调用发生在”onLoad”事件之间或之前)。(该BUG标记为SEL-339)。在这些情况,你可以使用Selenium的openWindow命令强制Selenium去通告打开窗体的名称,使用一个空(blank) url,像这样:openWindow(“”,”myFunnyWindow”)。
参数:
·windowID –要选择窗体的JavaScript.窗体ID
setBrowserLogLevel(logLevel)
设定浏览器方日志信息级别;在此级别之下的日志信息将被丢弃。有效的日志级别字符串有:”debug”,”info”,”warn”,”error”,或”off”。要查看浏览器日志,在GUI模式下打开日志窗口,或在Selenium RC中将浏览器端记入日志设定为enable。
参数:
·logLevel –以下之一:”debug”,”info”,”warn”,”error”,或”off”
setCursorPosition(locator,position)
将文本光标移动到被给与的输入元素或文本域的指定位置。若指定元素不是一个可输入元素或文本域,该方法将失败。
参数:
·locator –一个指向输入元素或文本域的元素定位器
·position –该范围的光标数字位置;position如果设定为0,则为该范围域的最开始位置,你同样可以将光标设定为-1以移动到该范围域的最末端。
setMouseSpeed(pixels)
配置在dragAndDrop命令执行期间,”mousemove”事件时的像素数字(默认为10)。
将这个值设定为0,意味着我们将向从开始位置到结束位置的每一个像素发送一个”mousemove”事件;那将会非常缓慢,且可能导致某些浏览器将该JavaScript强制设定为超时。
如果该鼠标速度大于两个拖动对象间的距离,我们将只向开始位置和结束位置发送一个”mousemove”事件。
参数:
·pixels –两个“mousemove”事件间的像素间隔
setSpeed(value)
设定执行速度(也就是说,设定将要执行的每条selenium操作间的毫秒延迟间隔长度)。默认情况下,没有延迟,也就是延迟为0毫秒。
参数:
·value –在操作后的暂停毫秒数
setTimeout(timeout)
指定Selenium等待动作完成的等待时间。
需要等待的动作包括”open”和”waitFor*”。
默认超时为30秒。
参数:
·timeout –以毫秒为单位,超过后该命令将返回错误。
shiftKeyDown()
按下shift键,并保持按下状态,直到doShiftUp()被调用或一个新的页面被加载。
shiftKeyUp()
释放shift键。
store(expression,variableName)
该命令是存储表达式的同义词。
参数:
·expression –要存储的值
·variableName –用于存储结果的变量名
submit(formLocator)
提交给指定表单。这对于没有提交按钮的表单特别有用,如,简单输入的”search”表单。
参数:
·formLocator –一个指向你要提交的表单的元素定位器
type(locator,value)
设定一个输入域的值,如同你输入进去一样。
其同样可用于单选框,多选框等。在这些情况,value应为选项选择时的值,而不是有效文本。
参数:
·locator –一个元素定位器
·value –要录入的值
typeKeys(locator,value)
模拟在指定元素上的按键事件,如同是你一个键一个键敲上去一样。
比起为指定字符串的每个字符调用keyDown,keyUp,keyPress方法,这个函数要方便的多;其对于需要明确按键事件的动态UI组件(如自动完成的combo box)同样有用。
不同于简单的”敲打”命令——将指定值直接强制赋给页面,该指令可能有,也可能没有任何效果,即时在敲打按钮通常会有效的情况下。例如,如果你在一个表单元素上使用”typeKeys”,你可能可以,也可能不可以看到看到你在该区域录入的效果。
在有些时候,你可能不得不使用简单的”type”命令去设定域的值,然后用”typeKeys”命令去发送按键事件以告知你所录入的值。
参数:
·locator –一个元素定位器
·value –要录入的值