Selenium中文API(三)

上一篇 / 下一篇  2012-11-15 11:56:48 / 个人分类:selenium

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.)如果windowIDnull(或是字符串”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)。在这些情况,你可以使用SeleniumopenWindow命令强制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 –要录入的值


TAG: API api Selenium selenium

 

评分:0

我来说两句

日历

« 2024-04-23  
 123456
78910111213
14151617181920
21222324252627
282930    

数据统计

  • 访问量: 20377
  • 日志数: 15
  • 建立时间: 2012-06-20
  • 更新时间: 2013-01-25

RSS订阅

Open Toolbar