SeleniumSeleniumSeleniumSelenium 中文 APIAPIAPIAPI
最近研究了下 Selenium,苦于网上中文资料太少,便自己翻译了下 Selenium官网上的
API,便于大家一起沟通和学习。
由于本人英文水平有限,部分字词句的拿捏可能不太到位,希望各位朋友给出宝贵意见哈
概念
Selenium 通过命令进行驱动。Selenium 可归纳为三种“风格”:动作、辅助和断
言。每一个命令调用就是下表中的一行。
命令 目标 值
动作(Actions)(Actions)(Actions)(Actions)命令一般用于操作应用程序的状态。它们通过如”点击链接”和”选
择选项”的方式进行工作。如果一个动作执行失败,或是有错误,当前的测试将
会停止执行。
许多动作可以被包含后缀”并等待”的方式进行调用,例如,”点击并等待”。这个后
缀告知 Selenium,该命令将使浏览器向服务器产生一个请求,并使得 Selenium
等待加载一个新的页面。
辅助(Accessors)(Accessors)(Accessors)(Accessors)用于检查应用程序的状态并将结果存储在变量中。例
如”storeTitle”。它们同样可用于自动生成断言。
断言(Assertions)(Assertions)(Assertions)(Assertions)类似于辅助,但它们可以验证应用程序的状态是否同所期望的
相一致。例如包括”确认页面标题为 X”和”验证该复选框是否被勾选”。
所有的 Selenium 断言可以被用于三种模式:”assert”, “verify”,和”waitfor”。例如,
你可以”assertText”,”verifyText”,及”waitforText”。当”assert”失败时,该测试将
终止。当”verify”失败时,该测试将继续执行,并将错误记入日志。这就允许了
通过单条”assert”确保应用程序在正确的页面上,而通过一系列的”verify”断言测
试表单上的区域值,标签等。
“waitfor”命令用于等待某些条件变为真(可用于 Ajax 应用程序的测试)。如果该条
件已经为真,他们将立即成功执行。反之,如果该条件不为真,则将失败并暂停
测试,直到超过当前所设定的超时时间(参照后面的 setTimeout 动作)。
元素定位器(Element(Element(Element(Element Locators)Locators)Locators)Locators)告诉 Selenium是向HTML中的哪一个元素发送命
令。许多命令需要一个如”target”属性的元素定位器。这其中包括”elementId”
和”document. forms[0].element”。在接下来的部分将更详细的描述它们。
式样(Patterns)(Patterns)(Patterns)(Patterns)由于多种因素被使用着,如指定一个输入域的期望值,或识别一
个选择选项。Selenium 支持许多类型的式样,其中包括正则表达式,所有这些将
在接下来的章节中进行更详细的描述。
定义一个类用于运行 Selenium 命令。
元素定位器(Element(Element(Element(Element Locators)Locators)Locators)Locators)
元素定位器(Element Locators)告诉 Selenium是向 HTML中的哪一个元素发送命
令。一个定位器的格式如下:
locatorType = argument
我们支持如下写法用于定位元素:
·identifier=id :根据指定的@id 属性选择元素。如果没有匹配的值,则选择
第一个@name 属性为 id 的元素。(参照后面)
·id=id :根据指定的@id 属性选择元素。
·name=name :选择第一个根据指定的@name 所查找到的元素。
〇 username
〇 name=username
这里的 name 可以作为可选项跟在一个或多个元素过滤器的后面,通过空格进行
分隔。如果没有指定过滤类型,则假定为 value。
〇 name=flavour value=chocolate
·dom=javascriptExpression: 通过检测指定字符串查找元素。这使得你可以通
过 JavaScript 贯穿 HTML 文档对象。注意在这个字符串中返回值不是必须的;
仅仅只需要确保这条语句是你块中的最后一条。
〇 dom=document.forms[´myForm´].myDropdown
〇 dom=document.images[56]
〇 dom=function foo() { return document.links[1];}; foo();
·xpath=xpathExpression: 通过 XPath 表达式定位元素。
〇 xpath=//img[@alt=´The image alt text´]
〇 xpath=//table[@id=´table1´]//tr[4]/td[2]
〇 xpath=//a[contains(@href, ´#id1´)]
〇 xpath=//a[contains(@href, ´#id1´)]/@class
〇 xpath=(//table[@class=´stylee´])//th[text()=´theHeaderText´]/../
td
〇 xpath=//input[@name=´name2´ and @value=´yes´]
〇 xpath=//*[text()=″right″]
·link=textPattern: 选择所包含的文字匹配指定式样的链接(锚)。
〇 link=The link text
·css=cssSelectorSyntax: 通过 css 选择器选择元素。请查询 CSS2 选择器,
CSS3 选择器以获得更多信息。在下载下来的 selenium core package 中的
selenium test suite 里的 TestCssLocators test ,你同样可以查看到使用例
子。
〇 css=a[href=″#id3″]
〇 css=span#firstChid + span
当前 css 选择过滤器支持所有的 css1,css2,css3,除了 css3 中一些虚拟类
(:nth-of-type,:nth-last-of-type,:first-of-type,:last-of-type,:only-of
-type,:visited,:hover,:active,:focus,:indeterminate)以及虚拟元素
(::first-line,::first-letter,::selection,::before,::after)。
如果没有一个显式的前缀,Selenium使用以下默认写法:
·dom,用于开头为″document.″的定位器
·xpath,用于开头为″//″的定位器
·identifier,其他
元素过滤器(Element Filters)
元素过滤器可以同选择器一起使用,从一堆候选元素中进行筛选。它们当前仅使
用于’name’元素选择器。
过滤器看起来更像是选择器,也就是:
filterType=argument
所支持的元素过滤器为:
valuevaluevaluevalue=valuePattern
匹配元素时基于它们的值进行匹配。这在对一堆相似命名的关联按钮的筛
选中显得尤其有用。
indexindexindexindex=index
选择单个元素基于其在列表中的位置(从 0 开始)。
字符串匹配 式样
有各种各样的式样语法可用于匹配字符串值:
·glob:pattern: 用″glob″去匹配一个字符串。″Glob″是一种用于命令行 shells
的代表性的有限正则表达式语法。在一个 glob 式样中, ″*″代表任意序列字符集,
而″?″则代表任意单个字符。Glob 式样匹配整个字符串。
·regexp:regexp: 使用正则表达式匹配字符串。可使用所有的 JavaScript 正则
表达式。
如果没有指定式样前缀,Selenium 假定其为″glob″式样。
Selenium Actions
addLocationStrategyaddLocationStrategyaddLocationStrategyaddLocationStrategy (strategyName,(strategyName,(strategyName,(strategyName, functionDefinition)functionDefinition)functionDefinition)functionDefinition)
为 selenium 定义一个新的函数用于定位页面上的元素。例如,如果你定义了
一个方法″foo″,并运行了 click(″foo=blah″),我们将运行你的函数,传递给你字
符串″blah″,并点击该函数所返回的元素,如果返回为 null,则抛出一个″Element
not found″的错误。我们将给该函数传递三个参数。
·locator: 用户传递过来的字符串
·inWindow: 当前所选中的窗体
·inDocument: 当前所选中的文档
如果未找到相应的元素,则函数必须返回一个 null。
参数:
·strategyName – 定义的方法名;只能使用字母[a-zA-Z],不能包含空格
或其他标点符号。
·functionDefinition – 在 JavaScript 函数中的一个定义 body 的字符串。
如:return inDocument.getElementById(locator);
addSelection (locator, optioLocator)
为通过使用选择定位器,在一个可多选元素中所选择的集合添加一个
selection。@查看#doSelect 关于选择定位器的细节。
参数:
·locator – 用于指定一个多选框的元素定位器
·optionLocator – 一个选择定位器(默认为标签)
allowNativeXpath (allow)
指定Selenium是否使用XPath的本地浏览执行(如果有可用的本地版本);如果传
递的值为″false″,我们将使用 pure-JavaScript xpath 库。使用 pure-JS xpath 库可以
提高 xpath 元素定位器在不同浏览器中的一致性,但其执行速度将大大低于本地
执行。
参数:
·allow – Boolean,true 意味着我们更愿意使用本地 XPath;false 则意味
着我们将只使用 JS XPath
altKeyDown()
按下 alt 键并保持其按下状态,直到 doAltUp()被调用或一个新的页面被加载。
altKeyUp()
释放 alt 键
answerOnNextPrompt (answer)
通知 Selenium 返回下一次 JavaScript prompt[window.prompt()]所指定的回
答字符串。
参数:
·answer – 对弹出的提示所给与的回答
assignId (locator,identifier)
临时为指定元素设定一个″id″属性,使你可以在将来使用其 ID,以代替缓慢且
更复杂的 XPath。该 ID 将在页面重载后消失。
参数:
·locator – 指向某个元素的元素定位器
·identifier – 为指定元素作为 ID 使用的字符串
break()
暂停当前正在进行的测试,并等待用户按下继续按钮。这个命令对于调试非常
有用,但使用时要特别小心,因为他将强制暂停自动化测试,直到用户手动操
作。
check(locator)
勾选一个关联性按钮(checkbox/radio)
参数:
·locator – 一个元素定位器
chooseCancelOnNextConfirmation()
默认情况下, Selenium 的重载 window.confirm()函数将返回 true,等同于用
户手动点击 OK;执行该命令后,下一次调用 confirm()将返回 false,等同于用
户手动点击了 Cancel。Selenium 对后来的确认动作将继续使用默认行为,自
动返回 true(OK),除非/直到你为每个确认动作明确的调用此命令。
chooseOkOnNextConfirmation()
撤销调用 chooseCancelOnNextConfirmation 的效果。注意,Selenium 的重载
window.confirm()函数通常将自动返回 true,等同于用户手动点击 OK,因此
你没有必要使用此命令,除非由于某种原因使你在下一次确认动作前不得不改
变你先前的想法。在任意确认动作后,Selenium 对后来的确认动作将继续使用
默认行为,自动返回 true(OK),除非/直到你为每个确认动作明确的调用
chooseCancelOnNextConfirmation()。
click(locator)
点击一个链接、按钮、多选框或单选框。如果该点击事件导致了新的页面加载
(如同链接通常所作的),将调用 waitForPageToLoad。
参数:
·locator -一个元素定位器
clickAt(locator,coordString)
点击一个链接、按钮、多选框或单选框。如果该点击事件导致了新的页面加载
(如同链接通常所作的),将调用 waitForPageToLoad。
参数:
·locator -一个元素定位器
·coordString – 指定由定位器返回的鼠标事件相关联的元素 x,y 坐标(也
就是 – 10,20)
close()
模拟用户点击弹出窗体或表单标题栏上的″关闭″按钮。
controlKeyDown()
按下 control 键并保持其按下状态,直到 doControlUp()被调用或一个新的页
面被加载。
controlKeyUp()
释放 control 键
createCookie(nameValuePair,optionsString)
创建一个新的 cookie,除非你清楚的指定该 cookie 的路径,否则其路径和域
将与当前测试的页面相同。
参数:
·nameValuePair – 该 cookie 的名称和值,使用如下格式″name=value″
·optionsString – 该 cookie 的选项。当前支持的选项包括’path’
和’max_age’。optionsString 的格式为”path=/path/,max_age=60”。选项的顺
序无关紧要。
deleteCookie(name,path)deleteCookie(name,path)deleteCookie(name,path)deleteCookie(name,path)
删除指定路径下的该名称 cookie。
参数:
·name – 被删除 cookie 的名称
·path – 被删除 cookie 的路径属性
doubleClick(locator)doubleClick(locator)doubleClick(locator)doubleClick(locator)
双击一个链接、按钮、多选框或单选框。如果该双击事件导致了新的页面加载
(如同链接通常所作的),将调用 waitForPageToLoad。
参数:
·locator - 一个元素定位器
doubleClickAt(locator,coordString)doubleClickAt(locator,coordString)doubleClickAt(locator,coordString)doubleClickAt(locator,coordString)
双击一个链接、按钮、多选框或单选框。如果该双击事件导致了新的页面加载
(如同链接通常所作的),将调用 waitForPageToLoad。
参数:
·locator - 一个元素定位器
·coordString – 指定由定位器返回的鼠标事件相关联的元素 x,y 坐标(也
就是 – 10,20)
dragAndDrop(locator,movementsString)dragAndDrop(locator,movementsString)dragAndDrop(locator,movementsString)dragAndDrop(locator,movementsString)
拖动元素一定的距离并放下
参数:
·locator - 一个元素定位器
·movementsString – 从当前位置到指定位置的像素偏移量,如,”+70,-300”
dragAndDropToObject(locatorOfObjectToBeDragged,locatorOfDragDestinatiodragAndDropToObject(locatorOfObjectToBeDragged,locatorOfDragDestinatiodragAndDropToObject(locatorOfObjectToBeDragged,locatorOfDragDestinatiodragAndDropToObject(locatorOfObjectToBeDragged,locatorOfDragDestinatio
nObject)nObject)nObject)nObject)
拖动元素到另一元素
参数:
·locatorOfObjectToBeDragged – 被拖动的元素
·locatorOfDragDestinationObject – 被拖动的元素将拖向的元素的坐标 (如,
其最中心像素)
Dragdrop(locator,movementsString)Dragdrop(locator,movementsString)Dragdrop(locator,movementsString)Dragdrop(locator,movementsString)
不建议 – 用 dragAndDrop 代替
参数:
·locator - 一个元素定位器
·movementsString – 从当前位置到指定位置的像素偏移量,如,”+70,-300”
Echo(message)Echo(message)Echo(message)Echo(message)
打印指定消息到你的 Selenese 表的第三个表单元。有利于调试。
参数:
·message – 要打印的消息
fireEvent(locator,eventName)fireEvent(locator,eventName)fireEvent(locator,eventName)fireEvent(locator,eventName)
明确地模拟一个事件,触发”onevent”响应句柄。
参数:
·locator - 一个元素定位器
·eventName – 事件名,如”focus” 或”blur”
getSpeed()getSpeed()getSpeed()getSpeed()
获取执行速度(也就是,获取接下来的每一个 selenium 操作的延迟豪秒长度)。
默认情况下,是不会有延迟的。也就是延迟为 0 毫秒。参照 setSpeed。
goBack()goBack()goBack()goBack()
模拟用户点击其浏览器上的”back”按钮
highlight(locator)highlight(locator)highlight(locator)highlight(locator)
暂时将指定元素的背景色改变为黄色。有利于调试。
参数:
·locator - 一个元素定位器
keyDown(locator,keySequence)
模拟用户按下一个键(除了还没释放的)
参数:
·locator - 一个元素定位器
·keySequence – 可以是个字符串(“\”后跟随要被按下键的数字键码,通常
是该键的 ASCII 值),或是个单字符,如“w“, “\119“。
keyPress(locator,keySequence)keyPress(locator,keySequence)keyPress(locator,keySequence)keyPress(locator,keySequence)
模拟用户按下和释放一个键。
参数:
·locator - 一个元素定位器
·keySequence – 可以是个字符串(“\”后跟随要被按下键的数字键码,通常
是该键的 ASCII 值),或是个单字符,如“w“, “\119“。
keyUp(locator,keySequence)keyUp(locator,keySequence)keyUp(locator,keySequence)keyUp(locator,keySequence)
模拟用户释放一个键。
参数:
·locator - 一个元素定位器
·keySequence – 可以是个字符串(“\”后跟随要被按下键的数字键码,通常
是该键的 ASCII 值),或是个单字符,如“w“, “\119“。
metaKeyDown()metaKeyDown()metaKeyDown()metaKeyDown()
按下 meta键并保持其按下状态,直到 doMetaUp()被调用或一个新的页面被加
载。
metaKeyUp()metaKeyUp()metaKeyUp()metaKeyUp()
释放 meta键
mouseDown(locator)mouseDown(locator)mouseDown(locator)mouseDown(locator)
模拟用户在指定元素上按下鼠标按钮(除了还没释放的)。
参数:
·locator - 一个元素定位器
mouseDownAt(locator,coordString)mouseDownAt(locator,coordString)mouseDownAt(locator,coordString)mouseDownAt(locator,coordString)
模拟用户在指定位置上按下鼠标按钮(除了还没释放的)。
参数:
·locator - 一个元素定位器
·coordString -指定由定位器返回的鼠标事件相关联的元素 x,y 坐标(也就
是 – 10,20)
mouseMove(locator)mouseMove(locator)mouseMove(locator)mouseMove(locator)
模拟用户在指定元素上按下鼠标按钮(除了还没释放的)。
参数:
·locator - 一个元素定位器
mouseMoveAt(locator,coordString)mouseMoveAt(locator,coordString)mouseMoveAt(locator,coordString)mouseMoveAt(locator,coordString)
模拟用户在指定位置上按下鼠标按钮(除了还没释放的)。
参数:
·locator - 一个元素定位器
·coordString -指定由定位器返回的鼠标事件相关联的元素 x,y 坐标(也就
是 – 10,20)
mouseOut(locator)mouseOut(locator)mouseOut(locator)mouseOut(locator)
模拟用户从指定元素上移开鼠标指针。
参数:
·locator - 一个元素定位器
mouseOver(locator)mouseOver(locator)mouseOver(locator)mouseOver(locator)
模拟用户鼠标滑过指定元素。
参数:
·locator - 一个元素定位器
mouseUp(locator)mouseUp(locator)mouseUp(locator)mouseUp(locator)
模拟用户在指定元素上释放鼠标按钮时发生的事件(也就是,停止保持按钮按
下)。
参数:
·locator - 一个元素定位器
mouseUpAt(locator,coordString)mouseUpAt(locator,coordString)mouseUpAt(locator,coordString)mouseUpAt(locator,coordString)
模拟用户在指定元素上释放鼠标按钮时发生的事件(也就是,停止保持按钮按
下)。
参数:
·locator - 一个元素定位器
·coordString -指定由定位器返回的鼠标事件相关联的元素 x,y 坐标(也就
是 – 10,20)
open(url)open(url)open(url)open(url)
在测试框架中打开一个 URL,可以为相对和绝对 URLs。”open”命令将等待页
面加载完成才继续进行,也就是明确的指名”并等待”后缀。注意:由于浏览器
安全策略(相同来源方针)这个 URL必须和当前运行的 HTML 在相同的域。如
果你不得不在另一个域打开一个 URL,则需要用 Selenium 服务在另一个域去
打开一个新的浏览器会话。
参数:
·url – 要打开的 URL,可以为空
·windowID – 要选择窗体的 JavaScript window ID
pause(waitTime)
等待指定时间(以毫秒为单位)
参数:
·waitTime – 要睡眠的时间(以毫秒为单位)
refresh()
模拟用户点击浏览器上的”Refresh”按钮。
removeAllSelections(locator)removeAllSelections(locator)removeAllSelections(locator)removeAllSelections(locator)
取消所有可多选元素的选择状态。
参数:
·locator – 一个用于识别多选框的元素定位器
removeSelection(locator,optionLocator)removeSelection(locator,optionLocator)removeSelection(locator,optionLocator)removeSelection(locator,optionLocator)
从用选项定位器进行筛选的多选元素的筛选集合中移除一个集合。@在
#doSelect 中查看选项定位器的详细信息。
参数:
·locator – 一个用于识别多选框的元素定位器
·optionLocator – 一个选项定位器(默认为一个标签)
runScript(script)runScript(script)runScript(script)runScript(script)
在当前测试窗体的 body 中创建一个新的”script”标签,并在 body 中添加指定的
命令文本。用这种方式执行脚本,通常可以比使用 Selenium的”getEval”方式更
简易的进行调试。要注意的是,由这种脚本标签所抛出的异常不受 Selenium 管
理,因此当该脚本有可能会抛出异常时,你需要用 try/catch 块将其包含起来。
·script – 需要执行的 JavaScript 片段
select(selectLocator,optionLocator)select(selectLocator,optionLocator)select(selectLocator,optionLocator)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)selectFrame(locator)selectFrame(locator)selectFrame(locator)
在当前窗体中选择一个框架(你可以多次调用这个命令用于选择嵌套框架)。要
选择父框架,用”relative=parent”作为定位器;要选择顶级框架,用”relative=top”。
你同样可以通过基于 0 的索引号选择框架;用”index=0”选择第一个框架,或者
用”index=2”选择第三个框架。
你同样可以直接使用一个 DOM 表达式来识别你要的框架。像这样:
dom=frames[“main”].frames[“subframe”]
参数:
·locator – 一个用于识别框架或子框架的元素定位器
selectWindow(windowID)selectWindow(windowID)selectWindow(windowID)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)setBrowserLogLevel(logLevel)setBrowserLogLevel(logLevel)setBrowserLogLevel(logLevel)
设定浏览器方日志信息级别;在此级别之下的日志信息将被丢弃。有效的日志
级别字符串有:”debug”,”info”,”warn”,”error”,或”off”。要查看浏览器日
志,在 GUI 模式下打开日志窗口,或在 Selenium RC 中将浏览器端记入日志设
定为 enable。
参数:
·logLevel – 以下之一:”debug”,”info”,”warn”,”error”,或”off”
setCursorPosition(locator,position)setCursorPosition(locator,position)setCursorPosition(locator,position)setCursorPosition(locator,position)
将文本光标移动到被给与的输入元素或文本域的指定位置。若指定元素不是一
个可输入元素或文本域,该方法将失败。
参数:
·locator – 一个指向输入元素或文本域的元素定位器
·position – 该范围的光标数字位置;position如果设定为 0,则为该范围域
的最开始位置,你同样可以将光标设定为-1 以移动到该范围域的最末端。
setMouseSpeed(pixels)setMouseSpeed(pixels)setMouseSpeed(pixels)setMouseSpeed(pixels)
配置在 dragAndDrop 命令执行期间,”mousemove”事件时的像素数字(默认为
10)。
将这个值设定为 0,意味着我们将向从开始位置到结束位置的每一个像素发送
一个”mousemove”事件;那将会非常缓慢,且可能导致某些浏览器将该
JavaScript 强制设定为超时。
如果该鼠标速度大于两个拖动对象间的距离,我们将只向开始位置和结束位置
发送一个”mousemove”事件。
参数:
·pixels – 两个“mousemove”事件间的像素间隔
setSpeed(value)setSpeed(value)setSpeed(value)setSpeed(value)
设定执行速度(也就是说,设定将要执行的每条 selenium 操作间的毫秒延迟间
隔长度)。默认情况下,没有延迟,也就是延迟为 0 毫秒。
参数:
·value – 在操作后的暂停毫秒数
setTimeout(timeout)setTimeout(timeout)setTimeout(timeout)setTimeout(timeout)
指定 Selenium 等待动作完成的等待时间。
需要等待的动作包括”open”和”waitFor*”。
默认超时为 30 秒。
参数:
·timeout – 以毫秒为单位,超过后该命令将返回错误。
shiftKeyDown()shiftKeyDown()shiftKeyDown()shiftKeyDown()
按下 shift 键,并保持按下状态,直到 doShiftUp()被调用或一个新的页面被加载。
shiftKeyUp()shiftKeyUp()shiftKeyUp()shiftKeyUp()
释放 shift 键。
store(expression,variableName)store(expression,variableName)store(expression,variableName)store(expression,variableName)
该命令是存储表达式的同义词。
参数:
·expression – 要存储的值
·variableName – 用于存储结果的变量名
submit(formLocator)submit(formLocator)submit(formLocator)submit(formLocator)
提交给指定表单。这对于没有提交按钮的表单特别有用,如,简单输入
的”search”表单。
参数:
·formLocator – 一个指向你要提交的表单的元素定位器
type(locator,value)type(locator,value)type(locator,value)type(locator,value)
设定一个输入域的值,如同你输入进去一样。
其同样可用于单选框,多选框等。在这些情况,value应为选项选择时的值,
而不是有效文本。
参数:
·locator – 一个元素定位器
·value – 要录入的值
typeKeys(locator,value)typeKeys(locator,value)typeKeys(locator,value)typeKeys(locator,value)
模拟在指定元素上的按键事件,如同是你一个键一个键敲上去一样。
比起为指定字符串的每个字符调用 keyDown,keyUp,keyPress 方法,这个函数要
方便的多;其对于需要明确按键事件的动态 UI 组件(如自动完成的 combo box)
同样有用。
不同于简单的”敲打”命令——将指定值直接强制赋给页面,该指令可能有,也
可能没有任何效果,即时在敲打按钮通常会有效的情况下。例如,如果你在一
个表单元素上使用”typeKeys”,你可能可以,也可能不可以看到看到你在该区
域录入的效果。
在有些时候,你可能不得不使用简单的”type”命令去设定域的值,然后
用”typeKeys”命令去发送按键事件以告知你所录入的值。
参数:
·locator – 一个元素定位器
·value – 要录入的值
uncheck(locator)uncheck(locator)uncheck(locator)uncheck(locator)
取消选中一个关联性按钮(checkbox/radio)
参数:
·locator – 一个元素定位器
waitForCondition(script,timeout)waitForCondition(script,timeout)waitForCondition(script,timeout)waitForCondition(script,timeout)
重复执行指定 JavaScript 片段直到其值为”true”。
该片段可以有多行,但只考虑其最后一行的结果。
要注意:默认情况下,该片段会在运行者的测试窗体运行,而不是在你的应用
程序窗体。要得到你的应用程序窗体,你可以使用 JavaScript 片段
selenium.browserbot.getCurrentWindow(),然后让你的 JavaScript 在那运行。
参数:
·script – 要运行的 JavaScript 片段
·timeout –以毫秒为单位,超过后该命令将返回错误。
waitForFrameToLoad(frameAddress,timeout)waitForFrameToLoad(frameAddress,timeout)waitForFrameToLoad(frameAddress,timeout)waitForFrameToLoad(frameAddress,timeout)
等待一个新的框架加载。
Selenium 通常会持续跟踪新页面和框架的加载状态,当其第一次注意到页面加
载完成,将会设定一个”newPageLoaded”标志。
查看 waitForPageToLoad 获得更多信息。
参数:
·frameAddress – 服务端的框架地址
·timeout -以毫秒为单位,超过后该命令将返回错误。
waitForPageToLoad(timeout)waitForPageToLoad(timeout)waitForPageToLoad(timeout)waitForPageToLoad(timeout)
等待一个新的页面加载。
你可以使用此命令以代替”AndWait”后
缀,”clickAndWait”,”selectAndWait”,”typeAndWait”等(仅在 JS API中有效)。
Selenium 通常会持续跟踪新页面的加载状态,当其第一次注意到页面加载完
成,将会设定一个”newPageLoaded”标志。当此标志变为 false后再运行其他
Selenium 命令。因此,如果你要等待一个页面加载完成,当一个 Selenium 命令
导致一个页面加载后就需立即开始等待。
参数:
·timeout -以毫秒为单位,超过后该命令将返回错误。
waitForPopUp(windowID,timeout)waitForPopUp(windowID,timeout)waitForPopUp(windowID,timeout)waitForPopUp(windowID,timeout)
等待一个弹出窗体出现和加载。
参数:
·windowID – 将出现窗体的 JavaScript 窗体 ID
·timeout -以毫秒为单位,超过后该命令将返回错误。
windowFocus()windowFocus()windowFocus()windowFocus()
将焦点赋给当前选择窗体
windowMaximize()windowMaximize()windowMaximize()windowMaximize()
重新设定当前窗体大小为全屏
SeleniumSeleniumSeleniumSeleniumAccessorsAccessorsAccessorsAccessors
assertErrorOnNext(message)assertErrorOnNext(message)assertErrorOnNext(message)assertErrorOnNext(message)
告诉 Selenium 在下一个命令执行时期待有错误。
参数:
·message – 我们所期望的错误信息。如果出现不正确的错误信息,该命令
将失败。
同断言相关联,自动生成:
·assertNotErrorOnNext(message)
·verifyErrorOnNext(message)
·verifyNotErrorOnNext(message)
·waitForErrorOnNext(message)
·waitForNotErrorOnNext(message)
assertFailureOnNext(message)assertFailureOnNext(message)assertFailureOnNext(message)assertFailureOnNext(message)
告诉 Selenium 在下一个命令执行时期待有失败。
参数:
·message – 我们所期望的失败信息。如果出现不正确的失败信息,该命令
将失败。
同断言相关联,自动生成:
·assertNotFailureOnNext(message)
·verifyFailureOnNext(message)
·verifyNotFailureOnNext(message)
·waitForFailureOnNext(message)
·waitForNotFailureOnNext(message)
assertSelected(selectLocator,optionLocator)assertSelected(selectLocator,optionLocator)assertSelected(selectLocator,optionLocator)assertSelected(selectLocator,optionLocator)
验证从下拉框中选择的选项满足选项指定器。
注意,不赞成使用该命令;你应该使用 assertSelectedLabel, assertSelectedValue,
assertSelectedIndex,或 assertSelectedId 进行代替。
查看选择命令获取更多关于选择定位器的信息。
参数:
·selectLocator - 一个用于识别下拉菜单的元素定位器
·optionLocator – 一个选项定位器,代表性的就是一个选项标签(如”John
Smith”)
同断言相关联,自动生成:
·assertNotSelected(selectLocator,optionLocator)
·verifySelected(selectLocator,optionLocator)
·verifyNotSelected(selectLocator,optionLocator)
·waitForSelected(selectLocator,optionLocator)
·waitForNotSelected(selectLocator,optionLocator)
storeAlert(variableName)storeAlert(variableName)storeAlert(variableName)storeAlert(variableName)
返回在之前动作所产生的 JavaScript 警告消息,如果没有警告将失败。
得到一个警告同手动点击 OK有着相同的效果。如果产生了一个警告,而你并
不去得到/验证它,那么下一个 Selenium 动作将失败。
注意:在 Selenium 中,JavaScript 警告将不会弹出一个可见的警告对话框。
注意:Selenium 不支持在页面的 onload()事件句柄中所产生的 JavaScript 警告。
在这种情况下,将会生成一个可见的对话框,Selenium 将被悬停直到手动点击
OK。
Returns:Returns:Returns:Returns:
最近 JavaScript 的警告消息
同断言相关联,自动生成:
·assertAlert(pattern)
·assertNotAlert(pattern)
·verifyAlert(pattern)
·verifyNotAlert(pattern)
·waitForAlert(pattern)
·waitForNotAlert(pattern)
storeAllButtons(variableName)
返回页面上所有按钮的 ID 集。
如果被给与的按钮没有 ID,则将在结果数组中显示为””。
Returns:Returns:Returns:Returns:
页面上所有按钮的 ID 集。
同断言相关联,自动生成:
·assertAllButtons(pattern)
·assertNotAllButtons(pattern)
·verifyAllButtons(pattern)
·verifyNotAllButtons(pattern)
·waitForAllButtons(pattern)
·waitForNotAllButtons(pattern)
storeAllFields(variableName)
返回页面上所有可输入域的 ID 集。
如果被给与的域没有 ID,则将在结果数
本文档为【Selenium_中文API】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑,
图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。