关键词不能为空

当前您在: 主页 > 英语 >

Selenium中文 API 参考手册

作者:高考题库网
来源:https://www.bjmy2z.cn/gaokao
2021-02-28 05:33
tags:

-

2021年2月28日发(作者:擦车)


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‖




‖[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

< p>
属性选择元素。



·


n ame=name:


选择第一个根据指定的


@name


所查找到的元素。







username






name=username


这里的


name


可以作为可选项跟在一 个或多个元素过滤器的后面,通过空格进行



分隔。如果没有 指定过滤类型,则假定为


value








name=flavourvalue=chocolate


·


dom=javascriptExpression:


通 过检测指定字符串查找元素。这使得你可以通



< p>
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″)

< p>
,我们将运行你的函数,传递给你字




----------------------- Page 4-----------------------




符串


″blah″


,并点击该函数所返 回的元素,如果返回为


null


,则抛出一个

< br>″Element




no tfound″


的错误。我们将给该函数传递三个参数。




·


locator:


用户传递过来的字符串




·


inWindow:


当前所选中的 窗体




·

< br>inDocument:


当前所选中的文档




如果未找到相应的元素,则函数必须返回一个


null





参数:




·


strategyName



定义的方法名;只能使用字母


[a-zA-Z],

< br>不能包含空格






或其他标点符号。




·


functionDefin ition




JavaScript


函数中的一个定义


body


的字符串。






如:


mentById(locator);



addSelection(locator,optioLocator)



为通过使用选择定位器,在一个可多选元素中所选择的集合 添加一个



selection



@


查看


#doSelect


关于选择定位器的细节。





参数:




·


locator

< p>


用于指定一个多选框的元素定位器




·


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

< p>
返回下一次


JavaScriptprompt[()]

< br>所指定的回




答字符串。




参数:




·


answer


< br>对弹出的提示所给与的回答




assignId(locator,identifier)















″id″
















ID



临时为指定元素设定一个




属性,使你可以在将来使用其



,以代替缓慢且








XPath




ID



更复杂的








。该




将在页面重载后消失。




----------------------- Page 5-----------------------




参数:




·


locator



指向某个元素的元素定位器




·


identifier




为指定元素作为


ID


使用的字符串




break()



暂停当前正在进行的测试,并等待用户按下继续按钮。这个 命令对于调试非常




有用,但使 用时要特别小心,因为他将强制暂停自动化测试,直到用户手动操




作。




check(locator)



勾选一个关联性按钮


(checkbox/radio)



参数:




·


locator

< p>


一个元素定位器




chooseCancelOnNextConfirmation()



默认情况下,


Selenium< /p>


的重载


m()


函数将返回


true


,等同于用




户手动点击


OK;


执行该命令后,下一 次调用


confirm()


将返回


fa lse


,等同于用



< p>
户手动点击了


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


代替




参数:




·


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‖


按钮

< p>



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()


被调用或一个新的页面被加

< p>



载。




metaKeyUp()


metaKeyUp()


mmeettaaKKeeyyUUpp(())



释放


meta





mouseDown(locator)


mouseDown(locator)


mmoouusseeDDoowwnn((llooccaattoorr))



模拟用户在指定元素上按下鼠标按钮除了还没释放的。


(












参数:




·


locator-


一个元素定位器




mouseDownAt(locator,coordString)


mouseDownAt(locator,coordString)

< p>
mmoouusseeDDoowwnnAAtt((llooccaattoorr,,ccoo oorrddSSttrriinngg))



模拟用户在指定位置上按下鼠标按钮除了还没释放的。


(












参数:




·


locator-


一个元素定位器




·


coordString-


指定由定位器返回的鼠标事件相关联的元素


x,y


坐标


(


也就








10,20)



mouseMove(locator)


mouseMove(locator)


mmoouusseeMMoovvee((llooccaattoorr))



模拟用户在指定元素上按下鼠标按钮除了还没释放的。


(












参数:




·


locator-


一个元素定位器




mouseMoveAt(locator,coordString)


mouseMoveAt(locator,coordString)

< p>
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>


URL


,则需要用


Selenium


服务在另一个域去




打开一个新的浏览器会话。




参数:



命令将等待页








·


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

< p>


一个用于识别多选框的元素定位器




·


optionLocato r



一个选项定位器


(


默认为一个标签


)



runScript(script)


runScript(script)


rruunnSSccrriipptt((ssccrriipptt))



在当前测试窗体的


body


中创建一个新的


‖script‖


标签,并在


body


中添加指定的




命令文本。用这种方式执行脚本,通常可以比使用


Selenium



‖getEval‖


方式更




简易 的进行调试。要注意的是,由这种脚本标签所抛出的异常不受


Selenium





理,因此当 该脚本有可能会抛出异常时,你需要用


try/catch


块将 其包含起来。




·


script



需要执行的

JavaScript


片段




select(selectLocator,optionLocator)


select(selectLocator,optionLocator)


sseelleecctt((sseelleeccttLLooccaattoorr, ,ooppttiioonnLLooccaattoorr))



用选项选择器从一个下拉框中选择一个选项。




选项选择器提供不同的方法从一个


HTML


选择元素中识别选项。


(


例如 :选择




一个指定选项,或断言 一个满足某种规范的选项


)


有许多种形式的选择选项定位




器。





·


label=labelPattern:


基于其标签匹配选项,如其有效文本。


(


默认


)








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‖





你同样可以通过基于


0


的索引号选择框架; 用


‖index=0‖


选择第一个框架,或者

< br>




‖index=2‖


选择第三个框架。



< p>
你同样可以直接使用一个


DOM


表达式来识别你要 的框架。像这样:




dom=f rames[―main‖].frames[―subframe‖]




----------------------- Page 11-----------------------




参数:




·


locator

< p>


一个用于识别框架或子框架的元素定位器




selectWindow(windowID)


selectWindow(windowID)


ssee lleeccttWWiinnddooww((wwiinnddoowwIIDD))



选择一个弹出窗体;一旦一个弹出窗体被选中,所有的命令 将指向该窗体。要




再次选择主 窗体,将对象设定为


null







window






JavaScript



‖name‖










window




(



注意:








的内在
















属性和被给与的











文档通常是




























) ‖title‖




你实际看到的,作为最终用户,在窗体的标题栏上的




















之间有一个很大的


< p>
不同。


‖name‖


对于最终用户通常是不可见的 ;它是作为第二个参





‖windowName‖


传递给


JavaS cript


函数



(url,windowName,windowFeatures,replaceFlag)(


Selenium





)






































截取。





)




Selenium


有许多方法 用于查找被


‖windowID‖


参数所提及的窗体对象。



1.)


如果

windowID



null


,< /p>


(


或是字符串


‖null‖)

< p>
,则假定为用户是提交给由浏览





器最初实例化的窗体。



2.)


如果


‖windowID ‖


参数的值是当前应用窗体的一个


JavaScript


变量名,则假





定该变量包含一个由调用


()


函数所产生的返回值。



3.) < /p>


另外,


seleniumlooksinahashitmain tainsthatmapsstringnamestowindow




―names‖.



4.)


如果失败了,我们将循环遍历所有已知的窗体以便 试图找出适合的


‖title‖






由于


‖title‖


不是必须唯一,因此可能会产生一些非期望的行为。

< br>




如果很难判定你所要操作的窗体的名称,你可以查看为识别通过



(


Selenium





)
















selenium
















截取所打开窗体的名称时所产生的
















息。在每个窗体被打开时,你通常可以看到如下信息:



debug:llintercepted;windowID(

< br>你可以用于


selectWindow())is



―myNewWindow‖





在某些情况,


Selenium< /p>


会无法截取



的调用


(


例如,如果该调用发生



< /p>



‖onLoad‖


事件之间或之前


)



(



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‖



‖error‖


,或


‖off‖

< p>


setCursorPosition(locator,position)


setCursorPosition(locator,position)


sseettCCuurrssoorrPPoossiittiioonn((llooc caattoorr,,ppoossiittiioonn))



----------------------- Page 12-----------------------




将文本光标移动到被给与的输入元素或文本域的指定位置。若指定元素不是一

< p>



个可输入元素或文本域,该方法将失败。




参数:





日志消





·


locator



一个指向输入元素或文本域的元素定位器< /p>




·


position



该范围的光标数字位置;

< br>position


如果设定为


0


,则为该范围域




的最开始位置 ,你同样可以将光标设定为


-1


以移动到该范围域的最末端。< /p>




setMouseSpeed(pixels)


setMouseSpeed(pixels)


sseet tMMoouusseeSSppeeeedd((ppiixxeellss))



配置在


dragAndDrop


命令执 行期间,


‖mousemove‖


事件时的像素数字

< p>
(


默认为



10)












0



将这个值设定为



,意味着我们将向从开始位置到结束位置的每一个像素发送




一个


‖mousemove‖


事件;那将会非常缓慢,且可能导致某些浏览器将该



JavaScript


强制设定为超时。





如果该鼠标速度大于两个拖动 对象间的距离,我们将只向开始位置和结束位置




发送一个


‖mousemove‖


事件。




参数:




·


pixels



两个


―mousemove‖

事件间的像素间隔




setSpeed(value)


setSpeed(value)


sseettSSppeeeedd((vvaalluuee))



设定执行速度


(

< br>也就是说,设定将要执行的每条


selenium


操作间 的毫秒延迟间




隔长度


)


。默认情况下,没有延迟,也就是延迟为


0< /p>


毫秒。




参数:




·


value


在操作后的暂停毫秒数




setTimeout(timeout)


setTimeout(timeout)


sseettTTiimmeeoouutt((ttiimmeeoouutt))



指定


Selenium

< p>
等待动作完成的等待时间。














‖open‖ ‖waitFor*‖




需要等待的动作包括





















默 认超时为


30


秒。




参数:




·


timeout

< p>


以毫秒为单位,超过后该命令将返回错误。




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))



设定一个输入域的值,如同你输入进去一样。




其同样可用于单选框,多选框等。在这些情况,

< p>
value


应为选项选择时的值,




而不是有效文本。




参数:




·


locator

< p>


一个元素定位器




·


value


要录入的值




typeKeys(locator,value)


typeKeys(locator,value)


tty yppeeKKeeyyss((llooccaattoorr,,vvaalluuee))



模拟在指定元素上的按键事件,如同是你一个键一个键敲上 去一样。




比起为指定字符串的 每个字符调用


keyDown,keyUp,keyPress


方法,这个函数要




方便的多; 其对于需要明确按键事件的动态


UI


组件


(


如自动完成的


combobox)



同样有用。





不同于简单的



敲打



命令


——


将指定值直接强制赋给页面,该指令可能有,也




可能没有任何效果,即时在敲打按钮通常会有效的情况下。 例如,如果你在一




个表单元素 上使用


‖typeKeys‖


,你可能可以,也可能不可以看到 看到你在该区




域录入的效果。





在有些时候,你可能不得不使用简单的

‖type‖


命令去设定域的值,然后





‖typeKeys‖


命令去发送按键事件以告知你所录入的值。




参数:




·


locator



一个元素定位器




·


value



要录入的值

< p>



uncheck(locator)


uncheck(locator)


uunncchheecckk((llooccaattoorr))



取消选中一个关联性按钮


(checkbox/radio)



参数:




·


locator

< p>


一个元素定位器




waitForCondition(script,timeout)


waitForCondition(script,timeout)

< p>
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


窗体

< p>
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

< p>


我们所期望的失败信息。如果出现不正确的失败信息,该命令

< p>



将失败。




同断言相关联,自动生成:




·


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,


< p>
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


有着相同的效果。如果产生了一个警告,而你并




不去得到


/


验证它,那么下一个


Selenium


动作将失败。




注意:在


Se lenium


中,


JavaScript


警告将不会弹出一个可见的警告对话框。



< p>
注意:


Selenium


不支持在页面的


onload()


事件句柄中所产生的


Java Script


警告。




在这种情况下,将会生成一个可见的对话框,


Selenium


将被悬停直到手动点击



OK





Returns:


Returns:


RReettuurrnnss::


< p>
最近


JavaScript


的警告消息

< p>




同断言相关联,自动生成:




·


assertAlert(pattern)



·


assertNotAlert(pattern)



·


verifyAlert(pattern)



·


verifyNotAlert(pattern)



·


waitForAlert(pattern)



·


waitForNotAlert(pattern)



storeAllButtons(variableName)



返回页面上所有按钮的


ID


集。




如果被 给与的按钮没有


ID


,则将在结果数组中显示为


‖‖





Returns:


Returns:


RReettuurrnnss::


< p>
页面上所有按钮的


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)




·


verifyAllWindowTitles(pattern )




·

< br>verifyNotAllWindowTitles(pattern)




·


waitForAllWind owTitles(pattern)




·


waitForNotAllWindowTitles(patte rn)


-


-


-


-


-


-


-


-



本文更新与2021-02-28 05:33,由作者提供,不代表本网站立场,转载请注明出处:https://www.bjmy2z.cn/gaokao/678939.html

Selenium中文 API 参考手册的相关文章