Selenium 中文API.docx
- 文档编号:11287757
- 上传时间:2023-02-26
- 格式:DOCX
- 页数:57
- 大小:32.65KB
Selenium 中文API.docx
《Selenium 中文API.docx》由会员分享,可在线阅读,更多相关《Selenium 中文API.docx(57页珍藏版)》请在冰豆网上搜索。
Selenium中文API
Selenium中文API
最近研究了下Selenium,苦于网上中文资料太少,便自己翻译了下Selenium官网上的API,便于大家一起沟通和学习。
由于本人英文水平有限,部分字词句的拿捏可能不太到位,希望各位朋友给出宝贵意见哈
概念
Selenium通过命令进行驱动。
Selenium可归纳为三种“风格”:
动作、辅助和断言。
每一个命令调用就是下表中的一行。
命令
目标
值
动作(Actions)命令一般用于操作应用程序的状态。
它们通过如”点击链接”和”选择选项”的方式进行工作。
如果一个动作执行失败,或是有错误,当前的测试将会停止执行。
许多动作可以被包含后缀”并等待”的方式进行调用,例如,”点击并等待”。
这个后缀告知Selenium,该命令将使浏览器向服务器产生一个请求,并使得Selenium等待加载一个新的页面。
辅助(Accessors)用于检查应用程序的状态并将结果存储在变量中。
例如”storeTitle”。
它们同样可用于自动生成断言。
断言(Assertions)类似于辅助,但它们可以验证应用程序的状态是否同所期望的相一致。
例如包括”确认页面标题为X”和”验证该复选框是否被勾选”。
所有的Selenium断言可以被用于三种模式:
”assert”,“verify”,和”waitfor”。
例如,你可以”assertText”,”verifyText”,及”waitforText”。
当”assert”失败时,该测试将终止。
当”verify”失败时,该测试将继续执行,并将错误记入日志。
这就允许了通过单条”assert”确保应用程序在正确的页面上,而通过一系列的”verify”断言测试表单上的区域值,标签等。
“waitfor”命令用于等待某些条件变为真(可用于Ajax应用程序的测试)。
如果该条件已经为真,他们将立即成功执行。
反之,如果该条件不为真,则将失败并暂停测试,直到超过当前所设定的超时时间(参照后面的setTimeout动作)。
元素定位器(ElementLocators)告诉Selenium是向HTML中的哪一个元素发送命令。
许多命令需要一个如”target”属性的元素定位器。
这其中包括”elementId”和”document.forms[0].element”。
在接下来的部分将更详细的描述它们。
式样(Patterns)由于多种因素被使用着,如指定一个输入域的期望值,或识别一个选择选项。
Selenium支持许多类型的式样,其中包括正则表达式,所有这些将在接下来的章节中进行更详细的描述。
定义一个类用于运行Selenium命令。
元素定位器(ElementLocators)
元素定位器(ElementLocators)告诉Selenium是向HTML中的哪一个元素发送命令。
一个定位器的格式如下:
locatorType=argument
我们支持如下写法用于定位元素:
·identifier=id:
根据指定的@id属性选择元素。
如果没有匹配的值,则选择第一个@name属性为id的元素。
(参照后面)
·id=id:
根据指定的@id属性选择元素。
·name=name:
选择第一个根据指定的@name所查找到的元素。
〇 username
〇name=username
这里的name可以作为可选项跟在一个或多个元素过滤器的后面,通过空格进行分隔。
如果没有指定过滤类型,则假定为value。
〇name=flavourvalue=chocolate
·dom=javascriptExpression:
通过检测指定字符串查找元素。
这使得你可以通过JavaScript贯穿HTML文档对象。
注意在这个字符串中返回值不是必须的;仅仅只需要确保这条语句是你块中的最后一条。
〇dom=document.forms[´myForm´].myDropdown
〇dom=document.images[56]
〇dom=functionfoo(){returndocument.links[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´)]/@class
〇xpath=(//table[@class=´stylee´])//th[text()=´theHeaderText´]/../td
〇xpath=//input[@name=´name2´and@value=´yes´]
〇xpath=//*[text()=″right″]
·link=textPattern:
选择所包含的文字匹配指定式样的链接(锚)。
〇link=Thelinktext
·css=cssSelectorSyntax:
通过css选择器选择元素。
请查询CSS2选择器,CSS3选择器以获得更多信息。
在下载下来的seleniumcorepackage中的seleniumtestsuite里的TestCssLocatorstest,你同样可以查看到使用例子。
〇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,其他
元素过滤器(ElementFilters)
元素过滤器可以同选择器一起使用,从一堆候选元素中进行筛选。
它们当前仅使用于’name’元素选择器。
过滤器看起来更像是选择器,也就是:
filterType=argument
所支持的元素过滤器为:
value=valuePattern
匹配元素时基于它们的值进行匹配。
这在对一堆相似命名的关联按钮的筛选中显得尤其有用。
index=index
选择单个元素基于其在列表中的位置(从0开始)。
字符串匹配式样
有各种各样的式样语法可用于匹配字符串值:
·glob:
pattern:
用″glob″去匹配一个字符串。
″Glob″是一种用于命令行shells的代表性的有限正则表达式语法。
在一个glob式样中,″*″代表任意序列字符集,而″?
″则代表任意单个字符。
Glob式样匹配整个字符串。
·regexp:
regexp:
使用正则表达式匹配字符串。
可使用所有的JavaScript正则表达式。
如果没有指定式样前缀,Selenium假定其为″glob″式样。
SeleniumActions
addLocationStrategy(strategyName,functionDefinition)
为selenium定义一个新的函数用于定位页面上的元素。
例如,如果你定义了一个方法″foo″,并运行了click(″foo=blah″),我们将运行你的函数,传递给你字符串″blah″,并点击该函数所返回的元素,如果返回为null,则抛出一个″Elementnotfound″的错误。
我们将给该函数传递三个参数。
·locator:
用户传递过来的字符串
·inWindow:
当前所选中的窗体
·inDocument:
当前所选中的文档
如果未找到相应的元素,则函数必须返回一个null。
参数:
·strategyName–定义的方法名;只能使用字母[a-zA-Z],不能包含空格或其他标点符号。
·functionDefinition–在JavaScript函数中的一个定义body的字符串。
如:
returninDocument.getElementById(locator);
addSelection(locator,optioLocator)
为通过使用选择定位器,在一个可多选元素中所选择的集合添加一个selection。
@查看#doSelect关于选择定位器的细节。
参数:
·locator–用于指定一个多选框的元素定位器
·optionLocator–一个选择定位器(默认为标签)
allowNativeXpath(allow)
指定Selenium是否使用XPath的本地浏览执行(如果有可用的本地版本);如果传递的值为″false″,我们将使用pure-JavaScriptxpath库。
使用pure-JSxpath库可以提高xpath元素定位器在不同浏览器中的一致性,但其执行速度将大大低于本地执行。
参数:
·allow–Boolean,true意味着我们更愿意使用本地XPath;false则意味着我们将只使用JSXPath
altKeyDown()
按下alt键并保持其按下状态,直到doAltUp()被调用或一个新的页面被加载。
altKeyUp()
释放alt键
answerOnNextPrompt(answer)
通知Selenium返回下一次JavaScriptprompt[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)
删除指定路径下的该名称cookie。
参数:
·name–被删除cookie的名称
·path–被删除cookie的路径属性
doubleClick(locator)
双击一个链接、按钮、多选框或单选框。
如果该双击事件导致了新的页面加载(如同链接通常所作的),将调用waitForPageToLoad。
参数:
·locator-一个元素定位器
doubleClickAt(locator,coordString)
双击一个链接、按钮、多选框或单选框。
如果该双击事件导致了新的页面加载(如同链接通常所作的),将调用waitForPageToLoad。
参数:
·locator-一个元素定位器
·coordString–指定由定位器返回的鼠标事件相关联的元素x,y坐标(也就是–10,20)
dragAndDrop(locator,movementsString)
拖动元素一定的距离并放下
参数:
·locator-一个元素定位器
·movementsString–从当前位置到指定位置的像素偏移量,如,”+70,-300”
dragAndDropToObject(locatorOfObjectToBeDragged,locatorOfDragDestinationObject)
拖动元素到另一元素
参数:
·locatorOfObjectToBeDragged–被拖动的元素
·locatorOfDragDestinationObject–被拖动的元素将拖向的元素的坐标(如,其最中心像素)
Dragdrop(locator,movementsString)
不建议–用dragAndDrop代替
参数:
·locator-一个元素定位器
·movementsString–从当前位置到指定位置的像素偏移量,如,”+70,-300”
Echo(message)
打印指定消息到你的Selenese表的第三个表单元。
有利于调试。
参数:
·message–要打印的消息
fireEvent(locator,eventName)
明确地模拟一个事件,触发”onevent”响应句柄。
参数:
·locator-一个元素定位器
·eventName–事件名,如”focus”或”blur”
getSpeed()
获取执行速度(也就是,获取接下来的每一个selenium操作的延迟豪秒长度)。
默认情况下,是不会有延迟的。
也就是延迟为0毫秒。
参照setSpeed。
goBack()
模拟用户点击其浏览器上的”back”按钮
highlight(locator)
暂时将指定元素的背景色改变为黄色。
有利于调试。
参数:
·locator-一个元素定位器
keyDown(locator,keySequence)
模拟用户按下一个键(除了还没释放的)
参数:
·locator-一个元素定位器
·keySequence–可以是个字符串(“\”后跟随要被按下键的数字键码,通常是该键的ASCII值),或是个单字符,如“w“,“\119“。
keyPress(locator,keySequence)
模拟用户按下和释放一个键。
参数:
·locator-一个元素定位器
·keySequence–可以是个字符串(“\”后跟随要被按下键的数字键码,通常是该键的ASCII值),或是个单字符,如“w“,“\119“。
keyUp(locator,keySequence)
模拟用户释放一个键。
参数:
·locator-一个元素定位器
·keySequence–可以是个字符串(“\”后跟随要被按下键的数字键码,通常是该键的ASCII值),或是个单字符,如“w“,“\119“。
metaKeyDown()
按下meta键并保持其按下状态,直到doMetaUp()被调用或一个新的页面被加载。
metaKeyUp()
释放meta键
mouseDown(locator)
模拟用户在指定元素上按下鼠标按钮(除了还没释放的)。
参数:
·locator-一个元素定位器
mouseDownAt(locator,coordString)
模拟用户在指定位置上按下鼠标按钮(除了还没释放的)。
参数:
·locator-一个元素定位器
·coordString-指定由定位器返回的鼠标事件相关联的元素x,y坐标(也就是–10,20)
mouseMove(locator)
模拟用户在指定元素上按下鼠标按钮(除了还没释放的)。
参数:
·locator-一个元素定位器
mouseMoveAt(locator,coordString)
模拟用户在指定位置上按下鼠标按钮(除了还没释放的)。
参数:
·locator-一个元素定位器
·coordString-指定由定位器返回的鼠标事件相关联的元素x,y坐标(也就是–10,20)
mouseOut(locator)
模拟用户从指定元素上移开鼠标指针。
参数:
·locator-一个元素定位器
mouseOver(locator)
模拟用户鼠标滑过指定元素。
参数:
·locator-一个元素定位器
mouseUp(locator)
模拟用户在指定元素上释放鼠标按钮时发生的事件(也就是,停止保持按钮按下)。
参数:
·locator-一个元素定位器
mouseUpAt(locator,coordString)
模拟用户在指定元素上释放鼠标按钮时发生的事件(也就是,停止保持按钮按下)。
参数:
·locator-一个元素定位器
·coordString-指定由定位器返回的鼠标事件相关联的元素x,y坐标(也就是–10,20)
open(url)
在测试框架中打开一个URL,可以为相对和绝对URLs。
”open”命令将等待页面加载完成才继续进行,也就是明确的指名”并等待”后缀。
注意:
由于浏览器安全策略(相同来源方针)这个URL必须和当前运行的HTML在相同的域。
如果你不得不在另一个域打开一个URL,则需要用Selenium服务在另一个域去打开一个新的浏览器会话。
参数:
·url–要打开的URL,可以为空
·windowID–要选择窗体的JavaScriptwindowID
pause(waitTime)
等待指定时间(以毫秒为单位)
参数:
·waitTime–要睡眠的时间(以毫秒为单位)
refresh()
模拟用户点击浏览器上的”Refresh”按钮。
removeAllSelections(locator)
取消所有可多选元素的选择状态。
参数:
·locator–一个用于识别多选框的元素定位器
removeSelection(locator,optionLocator)
从用选项定位器进行筛选的多选元素的筛选集合中移除一个集合。
@在#doSelect中查看选项定位器的详细信息。
参数:
·locator–一个用于识别多选框的元素定位器
·optionLocator–一个选项定位器(默认为一个标签)
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[“sub
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Selenium 中文API 中文 API