-
Selenium
中
文
API
参
考
手
册
自行添加内容
最近研究了下
Selenium
,苦于网上中文资料太少,
便自己翻译了下
Selenium
官网上的
API
,便于大家一起沟通和学习。
由于本人英文水平有限,部分字词句的拿捏可能不太到位,
希望各位朋友给出宝贵意见哈
概念
Selenium
通过命令进行驱动。
Selenium
可归纳为三种
―
风格
‖
:动作、辅助和断
言。每一个命令调用就是下表中的一行。
命令
目标
值
(Actions)
(Actions)
((AAccttiioonnss))
‖
‖ ‖
动作
命令一般用于操作应用程序的状态。它们通过如点击链接和选
择选项
‖
的方式进行工作。如果一个动
作执行失败,或是有错误,当前的测试将
会停止执行。
‖
‖
,‖
‖
许多动作可以被包含后缀并等待的方式进行调用,例如
点击并等待。这个后
缀告知
Selenium
,该命令将使浏览器向服务器产生一个请求,并使得
Selenium
等待加载一个新的页面。
(Accessors)
(Accessors)
辅助
((AAcccceessssoorrss))
用于检查应用程序的状态并将结果存储在变量中。例
如
‖storeTitle‖
。它们同样可用于自动生
成断言。
(Assertions)
(Assertions)
断
言
((AAsssseerrttiioonnss))
类似于
辅助,但它们可以验证应用程序的状态是否同所期望的
‖
X‖ ‖
‖
相一致。例如包括确认页面标题为
和验证该复选框是否被勾选。
所有的
Selenium
断言可以被用
于三种模式:
‖assert‖,―verify‖
,和
‖waitfor‖
。例如,
‖assertText‖ ‖verifyText‖
‖waitforText‖
‖assert‖
你可以
,
,及
。当
失败时,该测试将
终止。当
‖verify‖
失败时,该测试将继续执行,并将错误记入日志。这
就允许了
通过单条
‖assert
‖
确保应用程序在正确的页面上,而通过一系列的
‖verif
y‖
断言测
试表单上的区域值,标签等。
―waitfor‖
命令用于等待某些条件变为真可用于
(
Ajax
应用程序的测试。如果该条
)
件已经为真,他们将立即成功执行。反之,如果该条件不为真,则将失败并暂停
测试,直到超过当前所设定的超时时间
(
参照后面的
setTimeout
动作
)
。
(ElementLocators)
(ElementLocators)
元素定位器
((EElleemmeennttLLooccaattoorrss))
告诉
Selenium
是向
HTM
L
中的哪一个元素发送命
令。许多
命令需要一个如
‖target‖
属性的元素定位器。这其中包
括
‖elementId‖
和
p>
‖[0].element‖
。在接下来的部分将更详细的描述它们
。
----------------------- Page
2-----------------------
(Patterns)
(Patterns)
式样<
/p>
((PPaatttteerrnnss))
由于多种因素被使用
着,如指定一个输入域的期望值,或识别一
个选择选项。<
/p>
Selenium
支持许多类型的式样,其中包括正则表达式,所
有这些将
在接下来的章节中进行更详细的描述。
定义一个类用于运行
Seleni
um
命令。
(ElementLocators)
(ElementLocators)
元素定位器
((EElleemmeennttLLooccaattoorrss))
元素定位器
(ElementLocators)
告诉
Selenium
是向
HTML
中的哪一个元素发送命
令。一个定位器的格式如下:
locatorType=argument
我们支持如下写法用于定位元素:
·
identifier=id:
根据
指定的
@id
属性选择元素。如果没有匹配的值,则选择
第一个
@n
ame
属性为
id
的元素。
(
参照后面
)
·
p>
id=id:
根据指定的
@id
属性选择元素。
·
n
ame=name:
选择第一个根据指定的
@name
所查找到的元素。
〇
username
〇
name=username
这里的
name
可以作为可选项跟在一
个或多个元素过滤器的后面,通过空格进行
分隔。如果没有
指定过滤类型,则假定为
value
。
〇
name=flavourvalue=chocolate
·
dom=javascriptExpression:
通
过检测指定字符串查找元素。这使得你可以通
过
JavaScript
贯穿
HTML
文档对象。注意在这个字符串中返回值不是必须的;
仅仅只需要确保这条语句是你块中的最后一条。
〇
dom=[?myForm?].myDropdown
〇
dom=[56]
〇
dom=functionfoo(){[1];};foo();
·
xpath=xpathExpression:
通
过
XPath
表达式定位元素。
〇
xpath=//img[@alt=?Theimagealttext?]
〇
xpath=//table[@id=table1]//tr[4]/td[2]?
?
〇
xpath=//a[contains(@href, #id1)]? ?
〇
xpath=//a[contains(@href,?#id1?)]/@clas
s
〇
xpath=(//table[
@class=?stylee?])//th[text()=?theHeaderText?]/../
td
?
?
?
?
〇
xpath=//input[@name=name2
and@value=yes]
〇
xpath=//*[text()=″right″]
<
/p>
·
link=textPattern:
选择所包含的文字匹配指定式样的链接
(
锚
)
。
〇
link=Thelinktext
·
css=cssSelectorSyntax:
通过
cs
s
选择器选择元素。请查询
CSS2
选
择器,
CSS3
选择器以获得更多
信息。在下载下来的
seleniumcorepackage
中的
seleniumtestsuite
里的
TestCssLocatorstest,
你同
样可以查看到使用例
子。
〇
css=a[href=″#id3″]
-----------------------
Page 3-----------------------
〇
css=span#firstChid+span
当前<
/p>
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,:i
ndeterminate)
以及虚拟元素
(::first-line,::first-letter,::selectio
n,::before,::after)
。
如果没有一个显式的前缀,
Sel
enium
使用以下默认写法:
·
dom,
用于开头为
″document.″
的定位器
·
xpath,
用于开头为
″
//″
的定位器
·
identifier
,其他
元素过滤器
(ElementFilters)
元素过滤器可以同选择器一起使用,从一堆候选元素中进行
筛选。它们当前仅使
用于
‘nam
e‘
元素选择器。
过滤器看起来更像是选择器,也就是:
filterType=argument
所支持的元素过滤器为:
value
value
vvaalluuee=valuePattern
匹配元素时基于它们的值进行匹配。这在对一堆相似命名的
关联按钮的筛
选中显得尤其有用。
index
index
iinnddeexx=index
(
0
)
选择单个元素基于其在列表中的位置从
开始。
字符串匹配式样
有各种各样的式样语法可用于匹配字符串值:
·
glob:pattern:
用
< br>″glob″
去匹配一个字符串。
″Glob″
是一种用于命令行
shells
glob
,″*″
的代表性的有限正则表达式语法。在一个
式样中
代表任意序列字符集,
而
″?″
则代表任意单个字符。
Glob
式样匹配整个字符串。
< br>·
regexp:regexp:
使用正则表达式匹配字
符串。可使用所有的
JavaScript
正则
表达式。
如果没有指定式样前缀,
Selenium
假
定其为
″glob″
式样。
SeleniumActions
addLocationStrategy(strate
gyName,functionDefinition)
addLocation
Strategy(strategyName,functionDefinition)
aaddddLLooccaattiioonnSSttrraatteeggyy((ssttrr
aatteeggyyNNaammee,,ffuunnccttiioonnDDeeffiinniitt
iioonn))
为
sel
enium
定义一个新的函数用于定位页面上的元素。例如,如果你定义了
一个方法
″foo
″,
并运行了
click(″foo=blah″)
,我们将运行你的函数,传递给你字
----------------------- Page
4-----------------------
符串
″blah″
,并点击该函数所返
回的元素,如果返回为
null
,则抛出一个
< br>″Element
no
tfound″
的错误。我们将给该函数传递三个参数。
·
locator:
用户传递过来的字符串
·
inWindow:
当前所选中的
窗体
·
< br>inDocument:
当前所选中的文档
如果未找到相应的元素,则函数必须返回一个
null
。
参数:
·
strategyName
–
p>
定义的方法名;只能使用字母
[a-zA-Z],
< br>不能包含空格
或其他标点符号。
·
functionDefin
ition
–
在
JavaScript
函数中的一个定义
body
的字符串。
如:
mentById(locator);
addSelection(locator,optioLocator)
为通过使用选择定位器,在一个可多选元素中所选择的集合
添加一个
selection
。
@
查看
#doSelect
关于选择定位器的细节。
参数:
·
locator
–
用于指定一个多选框的元素定位器
·
optionLocato
r
–
一个选择定位器
(
默认为标签
)
allowNativeXpath(allow)
指定<
/p>
Selenium
是否使用
XPath<
/p>
的本地浏览执行
(
如果有可用的本地版本
);
如果传
递的值为
″false″
,我们将使用
pure-
JavaScriptxpath
库。使用
pure-
JSxpath
库可以
提高
xpath
元素定位器在不同浏览器中的一致性,但其执行速度将大大
低于本地
执行。
参数:
·
allow
< br>–
Boolean,true
意味着我们更愿意使用本地
XPath;false
则意味
着我们将只使用
JSXPath
altKeyDown()
按
下
alt
键并保持其按下状态,直到
d
oAltUp()
被调用或一个新的页面被加载。
altKeyUp()
释放
alt
键
answerOnNextPrompt(answer)
通知
Selenium
返回下一次
JavaScriptprompt[()]
< br>所指定的回
答字符串。
参数:
·
answer
–
< br>对弹出的提示所给与的回答
assignId(locator,identifier)
″id″
ID
临时为指定元素设定一个
属性,使你可以在将来使用其
,以代替缓慢且
XPath
ID
更复杂的
。该
将在页面重载后消失。
----------------------- Page
5-----------------------
参数:
·
locator
–
指向某个元素的元素定位器
·
identifier
–
为指定元素作为
ID
使用的字符串
break()
暂停当前正在进行的测试,并等待用户按下继续按钮。这个
命令对于调试非常
有用,但使
用时要特别小心,因为他将强制暂停自动化测试,直到用户手动操
作。
check(locator)
勾选一个关联性按钮
(checkbox/radio)
参数:
·
locator
–
一个元素定位器
chooseCancelOnNextConfirmation()
默认情况下,
Selenium<
/p>
的重载
m()
函数将返回
true
,等同于用
户手动点击
OK;
执行该命令后,下一
次调用
confirm()
将返回
fa
lse
,等同于用
户手动点击了
Cancel
。
Selenium
对后来的确认动作将继续使用默认行为,自
动返回
true(OK),
除非
/
直到你为每个确认动作明确的调
用此命令。
chooseOkOnNextConfirmation()
撤销调用
chooseCance
lOnNextConfirmation
的效果。注意,
Se
lenium
的重载
m()<
/p>
函数通常将自动返回
true
,等同于用
户手动点击
OK
,因此
你没有必要使用此命令,除非由于某种原因使你在下一次确
认动作前不得不改
变你先前的
想法。在任意确认动作后,
Selenium
对后来的确认动作
将继续使用
默认行为,自动返
回
true(OK),
除非
/
直到你为每个确认动作明确的调用
ch
ooseCancelOnNextConfirmation()
。
< br>
click(locator)
点击一个链接、按钮、多选框或单选框。如果该点击事件导
致了新的页面加载
(
如同链接
通常所作的
)
,将调用
waitFor
PageToLoad
。
参数:
·
locator-
一个元素定位器
clickAt(locator,coordString)
点击一个链接、按钮、多选框或单选框。如果该点击事件导
致了新的页面加载
(
如同链接
通常所作的
)
,将调用
waitFor
PageToLoad
。
参数:
·
locator-
一个元素定位器
·
coordString<
/p>
–
指定由定位器返回的鼠标事件相关联的元素
x,y
坐标
(
也
< br>
就是
–
10,20)
close()
″
″
模拟用户点击弹出窗体或表单标题栏上的关闭按钮。
-----------------------
Page 6-----------------------
controlKeyDown()
< br>按下
control
键并保持其按下状态,直到
doControlUp()
被调用或一个新的页
面被加载。
controlKeyUp()
释放
control
键
createC
ookie(nameValuePair,optionsString)
<
/p>
创建一个新的
cookie
,除非你清楚
的指定该
cookie
的路径,否则其路径和域
将与当前测试的页面相同。
参数:
·
nameValuePair
–<
/p>
该
cookie
的名称和值,使用如下格
式
″name=value″
·
optionsString
–<
/p>
该
cookie
的选项。当前支持的选项
包括
‘path‘
‘max_age‘ optionsString
‖path=/path/,max_age=60‖
和
。
的格式为
。选项的顺
序无关紧要。
deleteCookie(name,path)
deleteCookie(name,path)
dde
elleetteeCCooookkiiee((nnaammee,,ppaatthh))
删除指定路径下的该名称
cooki
e
。
参数:
·
name
–
被删除
cookie
的名称
·
path
< br>–
被删除
cookie
的路径属
性
doubleClick(locator)
doubleClick(locator)
ddoouu
bblleeCClliicckk((llooccaattoorr))
<
/p>
双击一个链接、按钮、多选框或单选框。如果该双击事件导致了新的页面加载
(
如同链接通常所作的
)
,将调用
waitForPageToLoad
。
参数:
·
locator-
一个元素定位器
doubleClickAt(locator,coordString)
doubleClickAt(locator,coordString)
ddoouubblleeCClliicckkAAtt((llooccaattoorr
,,ccoooorrddSSttrriinngg))
双击一个链接、按钮、多选框或单选框。如果该双击事件导致了新的页面加载
(
如同链接通常所作的
)
,将调用
waitForPageToLoad
。
参数:
·
locator-
一个元素定位器
·
coordString<
/p>
–
指定由定位器返回的鼠标事件相关联的元素
x,y
坐标
(
也
< br>
就是
–
10,20)
dragAndDrop(locator,movementsString)
dragAndDrop(locator,movementsString) <
/p>
ddrraaggAAnnddDDrroopp((llooccaattoorr,,
mmoovveemmeennttssSSttrriinngg))
拖动元素一定的距离并放下
参数:
·
locator-
一个元素定位器
·
movementsStr
ing
–
从当前位置到指定位置的像素偏移量,如
,‖+70,
-
300‖
-----------------------
Page 7-----------------------
dragAndDropToObject(locatorOfObjectToBeDragged
,locatorOfDragDestinatio
dragAndDropTo
Object(locatorOfObjectToBeDragged,locatorOfDragDes
tinatio
ddrraaggAAnnddDDrrooppTTooOObb
jjeecctt((llooccaattoorrOOffOObbjjeeccttTTooBBeeDD
rraaggggeedd,,llooccaattoorrOOff
DDrraag
gDDeessttiinnaattiioo
nObject)
nObject)
nnOObbjjeecctt))
拖动元素到另一元素
参数:
·
locatorOfObj
ectToBeDragged
–
被拖动的元素
·
locato
rOfDragDestinationObject
–
被拖动
的元素将拖向的元素的坐标
(
如,
其最中心像素
)
Dragdrop(locator,movementsString)
Dragdrop(locator,movementsString)
DDrraaggddrroopp((llooccaattoorr,,mmoovveem
meennttssSSttrriinngg))
不
建议
–
用
dragAndDrop
p>
代替
参数:
·
locator-
一个元素定位器
·
movementsStr
ing
–
从当前位置到指定位置的像素偏移量,如
,‖+70,
-
300‖
Echo(message)
Echo(message)
EEcchhoo((mmeessssaaggee))
打印指定消息到你的
Selenese
表的第三个表单元。有利于调试。
参数:
·
message
–
要打印的消息
fireEvent(locator,eventName)
fireEvent(locator,eventName)
ffiirreeEEvveenntt((llooccaattoorr,,eevveennttNN aammee))
明确地模拟一个事件,触发
‖onevent‖
响应句柄。
参数:
·
locator-
一个元素定位器
eventName
–
‖focus‖
‖blur‖
·
事件名,如
或
getSpeed()
getSpeed()
ggeettSSppeeeedd(())
获取执行速度也就是,获取接下来的每一个
(
selenium
操作的延迟豪秒长度。
)
0
setSpeed
默认情况下,是不会有延迟的。也就是延迟为
毫秒。参照
。
goBack()
goBack()
ggooBBaacckk(())
< br>模拟用户点击其浏览器上的
‖back‖
按钮
highlight(locator)
highlight(locator)
hhiigghhlliigghhtt((llooccaattoorr))
暂时将指定元素的背景色改变为黄色。有利于调试。
参数:
·
locator-
一个元素定位器
keyDown(locator,keySequence)
模拟用户按下一个键除了还没释放的
(
)
参数:
·
locator-
一个元素定位器
·
keySequence<
/p>
–
可以是个字符串
(―
< br>
‖
后跟随要被按下键的数字键码,通常
< br>
是该键的
ASCII<
/p>
值
)
,或是个单字符,如
―w―,―
119―
。
----------------------- Page
8-----------------------
keyPress(locator,keySequence)
keyPress(locator,keySequence)
< br>kkeeyyPPrreessss((llooccaattoorr,,kkeeyySSeeqqu ueennccee))
模拟用户按下和释放一个键。
参数:
·
locator-
一个元素定位器
·
keySequence<
/p>
–
可以是个字符串
(―
< br>
‖
后跟随要被按下键的数字键码,通常
< br>
是该键的
ASCII<
/p>
值
)
,或是个单字符,如
―w―,―
119―
。
keyUp(locator,keySequence)
keyUp(locator,keySequence)
kkeeyyUUpp((llooccaattoorr,,kkeeyySSeeqquueennccee
))
模拟用户释放一个键。
参数:
·
locator-
一个元素定位器
―
‖
·
keySequence<
/p>
–
可以是个字符串
(
后跟随要被按下键的数字键码,通常
是该键的
ASCII
值
)
,或是个单字符,如
―
w―,―
119―
。
< br>
metaKeyDown()
metaKeyDown()
mmeettaaKKeeyyDDoowwnn(())
按下
meta
键并保持其按下状态,直
到
doMetaUp()
被调用或一个新的页面被加
载。
metaKeyUp()
metaKeyUp()
mmeettaaKKeeyyUUpp(())
p>
释放
meta
键
mouseDown(locator)
mouseDown(locator)
mmoouusseeDDoowwnn((llooccaattoorr))
模拟用户在指定元素上按下鼠标按钮除了还没释放的。
(
参数:
·
locator-
一个元素定位器
mouseDownAt(locator,coordString)
mouseDownAt(locator,coordString)
mmoouusseeDDoowwnnAAtt((llooccaattoorr,,ccoo oorrddSSttrriinngg))
模拟用户在指定位置上按下鼠标按钮除了还没释放的。
(
参数:
·
locator-
一个元素定位器
·
coordString-
指定由定位器返回的鼠标事件相关联的元素
x,y
坐标
(
也就
是
–
10,20)
mouseMove(locator)
mouseMove(locator)
mmoouusseeMMoovvee((llooccaattoorr))
模拟用户在指定元素上按下鼠标按钮除了还没释放的。
(
参数:
·
locator-
一个元素定位器
mouseMoveAt(locator,coordString)
mouseMoveAt(locator,coordString)
mmoouusseeMMoovveeAAtt((llooccaattoorr,,ccoo oorrddSSttrriinngg))
模拟用户在指定位置上按下鼠标按钮除了还没释放的。
(
参数:
·
locator-
一个元素定位器
·
coordString-
指定由定位器返回的鼠标事件相关联的元素
x,y
坐标
(
也就
是
–
10,20)
-----------------------
Page 9-----------------------
)
)
)
)
mouseOut(locator)
mouseOut(locator)
mmoouusseeOOuutt((llooccaattoorr))
模拟用户从指定元素上移开鼠标指针。
参数:
·
locator-
一个元素定位器
mouseOver(locator)
mouseOver(locator)
mmoouusseeOOvveerr((llooccaattoorr))
模拟用户鼠标滑过指定元素。
参数:
·
locator-
一个元素定位器
mouseUp(locator)
mouseUp(locator)
mmoouusseeUUpp((llooccaattoorr))
模拟用户在指定元素上释放鼠标按钮时发生的事件
(
也就是,停止保持按钮按
下
)
。
参数:
·
locator-
一个元素定位器
mouseUpAt(locator,coordString)
mouseUpAt(locator,coordString)
mmoouusseeUUppAAtt((llooccaattoorr,,ccoooorrdd
SSttrriinngg))
模拟用户在指定元素上
释放鼠标按钮时发生的事件也就是,停止保持按钮按
(
下。
)
参数:
·
locator-
一个元素定位器
·
coordString-
指定由定位器返回的鼠标事件相关联的元素
x,y
坐标
(
也就
是
–
10,20)
open(url)
open(url)
ooppeenn((uurrll))
URL
URLs ‖open‖
在测试框架中打开一个
,可以为相对和绝对
。
‖
‖
面
加载完成才继续进行,也就是明确的指名并等待后缀。注意:由于浏览器
安全策略
(
相同来源方针
)
这个
URL
必须和当前运行的
HTML
在相同的域。如
p>
果你不得不在另一个域打开一个<
/p>
URL
,则需要用
Selenium
p>
服务在另一个域去
打开一个新的浏览器会话。
参数:
命令将等待页
·
url
–
要打开的
URL,
可以为空
·
windowID
–
要选择窗体的
JavaScriptwind
owID
pause(waitTime)
等待指定时间
(
< br>以毫秒为单位
)
参数:
·
waitTime
–
要睡眠的时间
(
以毫秒为单位
)
refresh()
模拟用户点击浏览器上的
‖Refresh‖
< br>按钮。
removeAllSelections(locator)
removeAllSelections(locator)
rreemmoovveeAAllllSSeelleeccttiioonnss((llooccaa ttoorr))
----------------------- Page
10-----------------------
取消所有可多选元素的选择状态。
参数:
·
locator
–
一个用于识别多选框的元素定位器
removeSelection(locator,optionLocator)
removeSelection(locator,optionLocator)
rreemmoovveeSSeelleeccttiioonn((lloocca
attoorr,,ooppttiioonnLLooccaattoorr))
从用选项定位器进行筛选的多选元素的筛选集合中移除一个集合。
@
在
#doSelect
中查看选项定位器的详细信息。
参数:
·
locator
–
一个用于识别多选框的元素定位器
·
optionLocato
r
–
一个选项定位器
(
默认为一个标签
)
runScript(script)
runScript(script)
rruunnSSccrriipptt((ssccrriipptt))
在当前测试窗体的
body
中创建一个新的
‖script‖
标签,并在
body
中添加指定的
命令文本。用这种方式执行脚本,通常可以比使用
Selenium
的
‖getEval‖
方式更
简易
的进行调试。要注意的是,由这种脚本标签所抛出的异常不受
Selenium
管
理,因此当
该脚本有可能会抛出异常时,你需要用
try/catch
块将
其包含起来。
·
script
–
需要执行的
JavaScript
片段
select(selectLocator,optionLocator)
select(selectLocator,optionLocator)
p>
sseelleecctt((sseelleeccttLLooccaattoorr,
,ooppttiioonnLLooccaattoorr))
用选项选择器从一个下拉框中选择一个选项。
选项选择器提供不同的方法从一个
HTML
选择元素中识别选项。
(
例如
:选择
一个指定选项,或断言
一个满足某种规范的选项
)
有许多种形式的选择选项定位
器。
·
label=labelPattern:
基于其标签匹配选项,如其有效文本。
p>
(
默认
)
〇
label=regexp:^[Oo]ther
·
value=valuePattern:
基于其值匹配选项。
〇
value=other
·
id=id:
基于其
id
匹配选项。
〇
id=option1
·
index=index:
基于其索引匹配选项
(
从
0
开始
< br>)
。
〇
index=2
如果没有为选项定位器提供前缀,则默认匹配为标签行为。
参数:
·
selectLocato
r
–
一个用于识别下拉菜单的元素定位器
·
optionLoc
ator
–
一个选项选择器默认为标签
(
)
selectFrame(locator)
selectFrame(locator)
sseell
eeccttFFrraammee((llooccaattoorr))
<
/p>
在当前窗体中选择一个框架你可以多次调用这个命令用于选择嵌套框架。要
(
选择父框架,用
‖relativ
e=parent‖
作为定位器;要选择顶级框架,用
‖rel
ative=top‖
。
p>
你同样可以通过基于
0
的索引号选择框架;
用
‖index=0‖
选择第一个框架,或者
< br>
用
‖index=2‖
选择第三个框架。
你同样可以直接使用一个
DOM
表达式来识别你要
的框架。像这样:
dom=f
rames[―main‖].frames[―subframe‖]
-----------------------
Page 11-----------------------
参数:
·
locator
–
一个用于识别框架或子框架的元素定位器
selectWindow(windowID)
selectWindow(windowID)
ssee
lleeccttWWiinnddooww((wwiinnddoowwIIDD))
选择一个弹出窗体;一旦一个弹出窗体被选中,所有的命令
将指向该窗体。要
再次选择主
窗体,将对象设定为
null
。
window
JavaScript
‖name‖
window
(
注意:
的内在
的
属性和被给与的
文档通常是
) ‖title‖
你实际看到的,作为最终用户,在窗体的标题栏上的
之间有一个很大的
不同。
‖name‖
对于最终用户通常是不可见的
;它是作为第二个参
数
‖windowName‖
传递给
JavaS
cript
函数
(url,windowName,windowFeatures,replaceFlag)(
Selenium
)
被
截取。
)
Selenium
有许多方法
用于查找被
‖windowID‖
参数所提及的窗体对象。
p>
1.)
如果
windowID
为
null
,<
/p>
(
或是字符串
‖null‖)
,则假定为用户是提交给由浏览
器最初实例化的窗体。
2.)
如果
‖windowID
‖
参数的值是当前应用窗体的一个
JavaScript
变量名,则假
定该变量包含一个由调用
()
p>
函数所产生的返回值。
3.) <
/p>
另外,
seleniumlooksinahashitmain
tainsthatmapsstringnamestowindow
―names‖.
4.)
如果失败了,我们将循环遍历所有已知的窗体以便
试图找出适合的
‖title‖
。
由于
‖title‖
不是必须唯一,因此可能会产生一些非期望的行为。
< br>
如果很难判定你所要操作的窗体的名称,你可以查看为识别通过
(
Selenium
)
selenium
被
截取所打开窗体的名称时所产生的
息。在每个窗体被打开时,你通常可以看到如下信息:
debug:llintercepted;windowID(
< br>你可以用于
selectWindow())is
―myNewWindow‖
在某些情况,
Selenium<
/p>
会无法截取
的调用
(
例如,如果该调用发生
<
/p>
在
‖onLoad‖
事件之间或之前
p>
)
。
(
该
BUG
标记为
SEL-339)
。在这些情况,你可
Selenium
openWindow
Selenium
以使用
的
命令强制
去通告打开窗体的名称,
使用一个
空
(blank)url
,像这样:
o
penWindow(―‖,‖myFunnyWindow‖)
。
参数:
·
windowID
–
要选择窗体的
JavaScript
窗体
ID
setBrowserLogLevel(logLevel)
setBrowserLogLevel(logLevel)
sseettBBrroowwsseerrLLooggLLeevveell((llooggLLee vveell))
设定浏览器方日志信息级别;在此级
别之下的日志信息将被丢弃。有效的日志
级别字符串有:
‖debug‖
,
< br>‖info‖
,
‖warn‖
,
‖error‖
,或
‖off‖
。要查看浏览器日
< br>志,在
GUI
模式下打开日志窗口,或在
SeleniumRC
中将浏览器端记入日志设
定为
enable
。
参数:
·
logLevel
–
以下之一:
‖debug‖
,
‖info‖
,
‖warn‖
,
p>
‖error‖
,或
‖off‖
setCursorPosition(locator,position)
setCursorPosition(locator,position)
p>
sseettCCuurrssoorrPPoossiittiioonn((llooc
caattoorr,,ppoossiittiioonn))
----------------------- Page
12-----------------------
将文本光标移动到被给与的输入元素或文本域的指定位置。若指定元素不是一
个可输入元素或文本域,该方法将失败。
参数:
日志消
·
locator
–
一个指向输入元素或文本域的元素定位器<
/p>
·
position
–
该范围的光标数字位置;
< br>position
如果设定为
0
,则为该范围域
的最开始位置
,你同样可以将光标设定为
-1
以移动到该范围域的最末端。<
/p>
setMouseSpeed(pixels)
setMouseSpeed(pixels)
sseet
tMMoouusseeSSppeeeedd((ppiixxeellss))
配置在
dragAndDrop
命令执
行期间,
‖mousemove‖
事件时的像素数字
(
默认为
10)
。
0
将这个值设定为
,意味着我们将向从开始位置到结束位置的每一个像素发送
一个
‖mousemove‖
p>
事件;那将会非常缓慢,且可能导致某些浏览器将该
JavaScript
强制设定为超时。
如果该鼠标速度大于两个拖动
对象间的距离,我们将只向开始位置和结束位置
发送一个
‖mousemove‖
事件。
p>
参数:
·
pixels
–
两个
―mousemove‖
事件间的像素间隔
setSpeed(value)
setSpeed(value)
sseettSSppeeeedd((vvaalluuee))
设定执行速度
(
< br>也就是说,设定将要执行的每条
selenium
操作间
的毫秒延迟间
隔长度
)
。默认情况下,没有延迟,也就是延迟为
0<
/p>
毫秒。
参数:
·
value
–
在操作后的暂停毫秒数
setTimeout(timeout)
setTimeout(timeout)
sseettTTiimmeeoouutt((ttiimmeeoouutt))
指定
Selenium
等待动作完成的等待时间。
‖open‖
‖waitFor*‖
需要等待的动作包括
和
。
默
认超时为
30
秒。
参数:
·
timeout
–
以毫秒为单位,超过后该命令将返回错误。
shiftKeyDown()
shiftKeyDown()
sshhiiffttKKeeyyDDoowwnn(())
按下
shift
< br>键,并保持按下状态,直到
doShiftUp()
被调
用或一个新的页面被加载。
shiftKeyUp()
shiftKeyUp()
sshhiiffttKKeeyyUUpp(())
释放
shift
键。
< br>
store(expression,variableName)
store(expression,variableName)
ssttoorree((eexxpprreessssiioonn,,vvaarriiaabb
lleeNNaammee))
该命令是存储表达式的同义词。
参数:
·
expression
–
要存储的值
·
variableName
–
用于存
储结果的变量名
----------------------- Page
13-----------------------
submit(formLocator)
submit(formLocator)
ssuubbmmiitt((ffoorrmmLLooccaattoorr))
提交给指定表单。这对于没有提交按钮的表单特别有用,如
,简单输入
的
‖search‖
表单。
参数:
·
formLocator
–
一个指向你要提交的表单的元素定位器
type(locator,value)
type(locator,value)
ttyyppee((llooccaattoorr,,vvaalluuee))
设定一个输入域的值,如同你输入进去一样。
其同样可用于单选框,多选框等。在这些情况,
value
应为选项选择时的值,
而不是有效文本。
参数:
·
locator
–
一个元素定位器
·
value
–
要录入的值
typeKeys(locator,value)
typeKeys(locator,value)
tty
yppeeKKeeyyss((llooccaattoorr,,vvaalluuee))
模拟在指定元素上的按键事件,如同是你一个键一个键敲上
去一样。
比起为指定字符串的
每个字符调用
keyDown,keyUp,keyPress
方法,这个函数要
方便的多;
其对于需要明确按键事件的动态
UI
组件
(
如自动完成的
combobox)
同样有用。
不同于简单的
‖
敲打
‖
命令
——
将指定值直接强制赋给页面,该指令可能有,也
可能没有任何效果,即时在敲打按钮通常会有效的情况下。
例如,如果你在一
个表单元素
上使用
‖typeKeys‖
,你可能可以,也可能不可以看到
看到你在该区
域录入的效果。
在有些时候,你可能不得不使用简单的
‖type‖
命令去设定域的值,然后
用
‖typeKeys‖
命令去发送按键事件以告知你所录入的值。
参数:
·
locator
–
一个元素定位器
·
value
–
要录入的值
uncheck(locator)
uncheck(locator)
uunncchheecckk((llooccaattoorr))
取消选中一个关联性按钮
(checkbox/radio)
参数:
·
locator
–
一个元素定位器
waitForCondition(script,timeout)
waitForCondition(script,timeout)
wwaaiittFFoorrCCoonnddiittiioonn((ssccrriipp tt,,ttiimmeeoouutt))
重复执行
指定
JavaScript
片段直到其值为
‖true‖
。
该片段可以有多行,但只考虑其最后一行的结果。
要注意:默认情况下,该片段会在运行者的测试窗体运行,
而不是在你的应用
程序窗体。
要得到你的应用程序窗体,你可以使用
JavaScript
片
段
rentWindow()
,然后让你的
JavaScript
在那运行。
参数:
·
script
–
要运行的
JavaScript
< br>片段
----------------------- Page
14-----------------------
·
timeout
–
以毫秒为单位,超过后该命令将返回错误。
<
/p>
waitForFrameToLoad(frameAddress,timeout)
waitForFrameToLoad(frameAddress,timeout
)
wwaaiittFFoorrFFrraammeeTTooLLooaadd
((ffrraammeeAAddddrreessss,,ttiimmeeoouutt))
等待一个新的框架加载。
Selenium
通常会持续跟踪新页面和框架的加载状态
,当其第一次注意到页面加
载
完成,将会设定一个
‖newPageLoaded‖
标志。<
/p>
查看
w
aitForPageToLoad
获得更多信息。
参数:
·
frameAddress
–
服务端的框架地址
·
timeout-
以毫秒为单位,超过后该命令将返回错误。
waitForPageToLoad(timeout)
waitForPageToLoad(timeout)
wwaaiittFFoorrPPaaggeeTTooLLooaadd((ttiimmeeoouutt
))
等待一个新的页面加载。
你可以使用此命令以代替
‖And
Wait‖
后
‖clickAndWait‖
‖selectAndWait‖ ‖typeAndWait‖ (
JSAPI
)
缀,
,
,
等仅在
中有效。
Selenium
通常会持续跟踪新页面的加载状态,当其
第一次注意到页面加载完
成,
将会设定一个
‖newPageLoaded‖
标志。当此标志
变为
false
后再运行其他
Selenium
命令。因此,如果你要等待一个页面加载
完成,当一个
Selenium
命令
导致一个页面加载后就需立即开始等待。
参数:
·
timeout-
以毫秒为单位,
超过后该命令将返回错误。
waitForPopUp(windowID,timeout)
waitForPopUp(windowID,timeout)
wwaaiittFFoorrPPooppUUpp((wwiinnddoowwIIDD,,tt
iimmeeoouutt))
等待一个弹出窗体出现和加载。
参数:
·
windowID
–
将出现窗体的
JavaScript
窗体
ID
·
ti
meout-
以毫秒为单位,超过后该命令将返回错误。
windowFocus()
windowFocus()
wwiinnddoowwFFooccuuss(())
将焦点赋给当前选择窗体
windowMaximize()
windowMaximize()
wwiinnddoowwMMaaxxiimmiizzee(())
重新设定当前窗体大小为全屏
-----------------------
Page 15-----------------------
SeleniumAccessors
SeleniumAccessors
SSeelleenniiuummAAcccceessssoorrss
assertErrorOnNext(message)
assertErrorOnNext(message)
aasssseerrttEErrrroorrOOnnNNeexxtt((mmeessssaaggee
))
告诉
Selenium<
/p>
在下一个命令执行时期待有错误。
参数:
·
message
–
我们所期望的错误信息。如果出现不正确的错误信息,该命令
将失败。
同断言相关联,自动生成:
·
assertNotErrorOnNext(message)
·
verifyErrorOnNext(message)
·
verifyNotErrorOnNext(message)
·
waitForErrorOnNext(message)
·
waitForNotErrorOnNext(message)
assertFailureOnNext(message)
assertFailureOnNext(message)
aasssseerrttFFaaiilluurreeOOnnNNeexxtt((mmeessss aaggee))
告诉
Sel
enium
在下一个命令执行时期待有失败。
参数:
·
message
–
我们所期望的失败信息。如果出现不正确的失败信息,该命令
将失败。
同断言相关联,自动生成:
·
assertNotFailureOnNext(message)
·
verifyFailureOnNext(message)
·
verifyNotFailureOnNext(message)
·
waitForFailureOnNext(message)
·
waitForNotFailureOnNext(message)
assertSelected(selectLocat
or,optionLocator)
assertSelected(selec
tLocator,optionLocator)
aasssseerrttSS
eelleecctteedd((sseelleeccttLLooccaattoorr,,oopptt
iioonnLLooccaattoorr))
验证从下拉框中选择的选项满足选项指定器。
注意,不赞成使用该命令;你应该使用
assertSelectedLabel,assertSelectedValue,
assertSelectedIndex,
或
assertSelectedId
进行代替。
查看选择命令获取更多关于选择定位器的信息。
参数:
·
selectLocator-
一
个用于识别下拉菜单的元素定位器
optionLocator
–
(
‖John
·
一个选项定位器,代表性的就是一个选项标签如
Smith‖)
同断言相关联,自动生成:
·
assertNotSel
ected(selectLocator,optionLocator)
·
verifySelected(selectLocat
or,optionLocator)
·
verifyNotSelected(selectLocator,optionLocat
or)
·
waitFor
Selected(selectLocator,optionLocator)
----------------------- Page
16-----------------------
·
waitForNotSelected(selectL
ocator,optionLocator)
storeAlert(variableName)
storeAlert(variableName)
ss
ttoorreeAAlleerrtt((vvaarriiaabblleeNNaammee))
返回在之前动作所产生的
Java
Script
警告消息,如果没有警告将失败。
得到一个警告同手动点击
OK
p>
有着相同的效果。如果产生了一个警告,而你并
不去得到
/
验证它,那么下一个
Selenium
动作将失败。
注意:在
Se
lenium
中,
JavaScript
警告将不会弹出一个可见的警告对话框。
注意:
Selenium
不支持在页面的
onload()
事件句柄中所产生的
Java
Script
警告。
在这种情况下,将会生成一个可见的对话框,
Selenium
将被悬停直到手动点击
OK
。
Returns:
Returns:
RReettuurrnnss::
最近
JavaScript
的警告消息
同断言相关联,自动生成:
·
assertAlert(pattern)
·
assertNotAlert(pattern)
·
verifyAlert(pattern)
·
verifyNotAlert(pattern)
·
waitForAlert(pattern)
·
waitForNotAlert(pattern)
storeAllButtons(variableName)
返回页面上所有按钮的
ID
集。
如果被
给与的按钮没有
ID
,则将在结果数组中显示为
‖‖
。
Returns:
Returns:
RReettuurrnnss::
页面上所有按钮的
ID
集。
同断言相关联,自动生成:
·
assertAllButtons(pattern)
·
assertNotAllButtons(pattern)
·
verifyAllButtons(pattern)
·
verifyNotAllButtons(pattern)
·
waitForAllButtons(pattern)
·
waitForNotAllButtons(pattern)
storeAllFields(variableName)
返回页面上所有可输入域的
ID<
/p>
集。
如
果被给与的域没有
ID
,则将在结果数组中显示为
‖‖
Returns:
Returns:
RReettuurrnnss::
页面上所有域的
ID
集。
----------------------- Page
17-----------------------
同断言相关联,自动生成:
·
assertAllFields(pattern)
·
assertNotAllFields(pattern)
·
verifyAllFields(pattern)
·
verifyNotAllFields(pattern)
·
waitForAllFields(pattern)
·
waitForNotAllFields(pattern)
storeAllLinks(variableName)
storeAllLinks(variableName)
ssttoorreeAAllllLLiinnkkss((vvaarriiaabblleeNNaam
mee))
返回页面上所有链接的
ID
集。
如果被给与的链接没有
ID
,则将在结果数组中显示为
‖‖
Returns:
Returns:
RReettuurrnnss::
页面上所有链接的
ID
集。
同断言相关联,自动生成:
·
assertAllLinks(pattern)
·
assertNotAllLinks(pattern)
·
verifyAllLinks(pattern)
·
verifyNotAllLinks(pattern)
·
waitForAllLinks(pattern)
·
waitForNotAllLinks(pattern)
storeAllWindowIds(variableName)
storeAllWindowIds(variableName)
ssttoorreeAAllllWWiinnddoowwIIddss((vvaarriia
abblleeNNaammee))
返回所有浏览器
已知的窗体
ID
集。
Returns:
Returns:
RReettuurrnnss::
ID
所有浏览器已知的窗体
集。
同断言相关联,自动生成:
·
assertAllWindowIds(pattern)
·
assertNotAllWindowIds(pattern)
·
verifyAllWindowIds(pattern)
·
verifyNotAllWindowIds(pattern)
·
waitForAllWind
owIds(pattern)
·
waitForNotAllWindowIds(pattern)
storeAllWindowNames(variableName)
storeAllWindowNames(variableName)
ssttoorreeAAllllWWiinnddoowwNNaammeess((vva
arriiaabblleeNNaammee))
返回所有浏览器已知的窗体名称集。
Returns:
Returns:
RReettuurrnnss::
所有浏览器已知的窗体名称集。
同断言相关联,自动生成:
·
assertAllWindo
wNames(pattern)
·
assertNotAllWindowNames(pattern)
-----------------------
Page 18-----------------------
·
verifyAllWindowNames(pattern)
·
verifyNotAllWi
ndowNames(pattern)
·
waitForAllWindowNames(pattern)
·
waitForNotAllWindowNames(pattern)
storeAllWindowTitles(variableName)
storeAllWindowTitles(variableName)
ssttoorreeAAllllWWiinnddoowwTTiittlleess((
vvaarriiaabblleeNNaammee))
返回所有浏览器已知的窗体标题集。
Returns:
Returns:
RReettuurrnnss::
所有浏览器已知的窗体标题集。
同断言相关联,自动生成:
·
assertAllWindowTitles(pattern)
·
assertNotAllWi
ndowTitles(pattern)
p>
·
verifyAllWindowTitles(pattern
)
·
< br>verifyNotAllWindowTitles(pattern)
·
waitForAllWind
owTitles(pattern)
·
waitForNotAllWindowTitles(patte
rn)
-
-
-
-
-
-
-
-
-
上一篇:山东省莱芜市九年级上学期语文期中考试试卷
下一篇:英语国家概况课后习题(附答案)