selenium模拟鼠标滚动 鼠标位置为什么影响draganddrop

[Selenium With C# 基础教程] Lesson11-用户交互 - 简书
[Selenium With C# 基础教程] Lesson11-用户交互
Selenium API
Selenium API中的Actions类(==注意不要跟.NET自带的委托Action混淆==)提供了一些方法用于用户与浏览器进行较为复杂的交互操作,可以让用户通过键盘和鼠标等进行一系列的操作。详细的方法,我们可以通过查看Actions类,如下图所示:
11-1 Selenium API.jpg
通过Actions类我们大致可以提取出以下几种交互方式
鼠标事件Click()ClickAndHold()ContextClick()DoubleClick()DragAndDrop()DragAndDropToOffset()MoveByOffset()MoveToElement()Release()
键盘事件KeyDown()KeyUp()SendKeys()
第一步:需要引用OpenQA.Selenium.Interactionsusing OpenQA.Selenium.I
第二步:调用方法new Actions(driver).+"需要调用的方法"+.Perform();
鼠标单击控件
这个在之前的文章已经多次使用过了,示例代码如下:
IWebDriver driver=new ChromeDriver();
driver.Url = "";
IWebElement eles = driver.FindElement(By.LinkText("关于百度"));
Actions actionsObj = new Actions(driver);
actionsObj.Click(eles).Perform();
上面是通过Actions类来实现鼠标单击,其实也可以直接使用IWebElement中自带的Click方法
鼠标双击控件
IWebDriver driver=new ChromeDriver();
IWebElement eles=driver.FindElement(By.Id("id"));
Actions actionsObj = new Actions(driver);
actionsObj.DoubleClick(eles).Perform();
鼠标单击拖动
下面的代码演示的是从第1个控件单击并拖动至第5个控件,并选中这5个控件,如下所示:
driver.Url = "http://www./demo/5640.html";
Thread.Sleep(1000);
driver.Manage().Window.Maximize();
ReadOnlyCollection&IWebElement& items = driver.FindElements(By.XPath("//ol[@id='selectable']/li"));
Assert.AreEqual&int&(7, items.Count);
Actions actionsObj = new Actions(driver);
actionsObj.ClickAndHold(items[0]).ClickAndHold(items[4]).Release().Perform();
最后一行代码连续调用了两次ClickAndHold()方法,==第1次调用代表是起始控件,第2次调用代表是结束控件,注意里面的下标是从0开始==
鼠标单击拖动前后的状态
11-2 鼠标单击拖动前后的状态_c2i.jpg
移动鼠标到指定控件
IWebElement eles=driver.FindElement(By.Id("id"));
Actions actionsObj = new Actions(driver);
actionsObj.MoveToElement(eles).Perform();
拖放操作因操作简单易懂,在Web页面中应用也越来越广,特别是一些银行页面中。以下代码演示如何通过Selenium API来完成操作。
方法一:通过方法DragAndDrop()实现driver.Url = "http://www./demo/5622.html";
Thread.Sleep(1000);
driver.Manage().Window.Maximize();
IWebElement soureEle = driver.FindElement(By.Id("draggable"));
IWebElement targetEle = driver.FindElement(By.Id("droppable"));
Actions actionObj = new Actions(driver);
actionObj.DragAndDrop(soureEle, targetEle).Perform();
IWebElement textEle = driver.FindElement(By.XPath("//div[@id='droppable']/p"));
Assert.IsTrue(textEle.Text.Contains("Dropped!"));
方法二:通过方法MoveToElement实现
driver.Url = "http://www./demo/5622.html";
Thread.Sleep(1000);
driver.Manage().Window.Maximize();
IWebElement soureEle = driver.FindElement(By.Id("draggable"));
IWebElement targetEle = driver.FindElement(By.Id("droppable"));
Actions actionObj = new Actions(driver);
actionObj.ClickAndHold(soureEle).MoveToElement(targetEle).Release(targetEle).Perform();
IWebElement textEle = driver.FindElement(By.XPath("//div[@id='droppable']/p"));
Assert.IsTrue(textEle.Text.Contains("Dropped!"));
鼠标拖放前后的状态
11-3 鼠标拖放前后状态_c2i.jpg
拖动进度条或滑块
进度条或滑块一般都是通过JavaScript或JQuery实现,方便用户直观的调整值。一种使用JavaScript实现的滑块如下所示:
11-4 滑块示例_c2i.jpg
示例代码如下:
driver.Url = "/2015/drag1218/";
Thread.Sleep(1000);
driver.Manage().Window.Maximize();
IWebElement origianlValueEle = driver.FindElement(By.Id("title"));
Assert.AreEqual("0", origianlValueEle.Text);
IWebElement sliderEle = driver.FindElement(By.Id("btn"));
Actions actionsObj = new Actions(driver);
actionsObj.DragAndDropToOffset(sliderEle, 100, 0).Perform();
Assert.AreEqual("51%", origianlValueEle.Text);
滑块移动前后的状态
11-5 移动滑块代码实现_c2i.jpg
单击鼠标右键菜单
在部分网站中会有一些操作需要通过右键菜单来实现,对于这种情况Selenium API也提供一种方法ContextClick()方法,详细演示如下所示:
driver.Url = "/demo/2017/basicContext/";
Thread.Sleep(1000);
driver.Manage().Window.Maximize();
IWebElement btnEle = driver.FindElement(By.XPath("//button[contains(@class,'btn-success context')]"));
Actions actionsObj = new Actions(driver);
//点击右键菜单
actionsObj.ContextClick(btnEle).Perform();
IWebElement rightMenu = driver.FindElement(By.XPath("//div[@class='basicContext']/table/tbody/tr[2]"));
rightMenu.Click();
IAlert alert = driver.SwitchTo().Alert();
string alertText = alert.T
alert.Accept();
Assert.AreEqual&string&("Item clicked!",alertText);
在之前的文章中我们经常使用SendKeys()方法向页面中输入文本,下面我们将演示,在百度搜索中输入一段文字,然后通过键盘全选,再删除的案例,代码如下:
driver.Url = "/";
Thread.Sleep(1000);
driver.Manage().Window.Maximize();
IWebElement searchBoxEle = driver.FindElement(By.Id("kw"));
searchBoxEle.SendKeys("在百度搜索框中输入一段文字");
Thread.Sleep(1000);
Actions actionObj = new Actions(driver);
//使用Ctrl+A全选输入的文字
actionObj.Click(searchBoxEle).KeyDown(Keys.Control).SendKeys("a").KeyUp(Keys.Control).Perform();
//使用键盘Backspace删除刚才输入的文字
actionObj.SendKeys(Keys.Backspace).Perform();
注意上面代码最后一行使用了Actions类中的SendKeys()方法,该方法与IWebElement接口中的SendKeys()方法不一样,注意区别,如下所示:
11-6 SendKeys方法的区别.jpg
本文同步在微信订阅号上发布,如各位小伙伴们喜欢我的文章,也可以关注我的微信订阅号:woaitest,或扫描下面的二维码添加关注:
MyQRCode.jpg
不去努力就不会知道自己有多么优秀!自动化测试(2)
Selenium&通过命令进行驱动。Selenium&可归纳为三种“风格”:动作、辅助和断言。每一个命令调用就是下表中的一行。
动作(Actions)命令一般用于操作应用程序的状态。它们通过如”点击链接”和”选择选项”的方式进行工作。如果一个动作执行失败,或是有错误,当前的将会停止执行。
许多动作可以被包含后缀”并等待”的方式进行调用,例如,”点击并等待”。这个后缀告知Selenium,该命令将使浏览器向服务器产生一个请求,并使得Selenium等待加载一个新的页面。
辅助(Accessors)用于检查应用程序的状态并将结果存储在变量中。例如”storeTitle”。它们同样可用于自动生成断言。
断言(Assertions)类似于辅助,但它们可以验证应用程序的状态是否同所期望的相一致。例如包括”确认页面标题为X”和”验证该复选框是否被勾选”。
所有的Selenium断言可以被用于三种模式:”assert”, “verify”,和”waitfor”。例如,你可以”assertText”,”verifyText”,及”waitforText”。当”assert”失败时,该测试将终止。当”verify”失败时,该测试将继续执行,并将错误记入日志。这就允许了通过单条”assert”确保应用程序在正确的页面上,而通过一系列的”verify”断言测试表单上的区域值,标签等。
“waitfor”命令用于等待某些条件变为真(可用于Ajax应用程序的测试)。如果该条件已经为真,他们将立即成功执行。反之,如果该条件不为真,则将失败并暂停测试,直到超过当前所设定的超时时间(参照后面的setTimeout动作)。
元素定位器(Element Locators)告诉Selenium是向HTML中的哪一个元素发送命令。许多命令需要一个如”target”属性的元素定位器。这其中包括”elementId”和”document. forms[0].element”。在接下来的部分将更详细的描述它们。
式样(Patterns)由于多种因素被使用着,如指定一个输入域的期望值,或识别一个选择选项。Selenium支持许多类型的式样,其中包括正则表达式,所有这些将在接下来的章节中进行更详细的描述。
定义一个类用于运行Selenium命令。
元素定位器(Element 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=:&通过检测指定字符串查找元素。这使得你可以通过&JavaScript贯穿HTML文档对象。注意在这个字符串中返回值不是必须的;仅仅只需要确保这条语句是你块中的最后一条。
&&&&〇&&dom=document.forms[′myForm′].myDropdown
&&&&&&&〇&&dom=document.images[56]
&&&&&&&〇&&dom=function foo() { return document.links[1];}; foo();
·xpath=xpath:&通过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&选择器,&选择器以获得更多信息。在下载下来的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
所支持的元素过滤器为:
value=valuePattern
&&&&&&&&&匹配元素时基于它们的值进行匹配。这在对一堆相似命名的关联按钮的筛选中显得尤其有用。
index=index
&&&&&&&&选择单个元素基于其在列表中的位置(从0开始)。
字符串匹配&式样
有各种各样的式样语法可用于匹配字符串值:
·glob:pattern:&用″glob″去匹配一个字符串。″Glob″是一种用于命令行shells的代表性的有限正则表达式语法。在一个glob式样中, ″*″代表任意序列字符集,而″?″则代表任意单个字符。Glob式样匹配整个字符串。
·regexp:regexp:&使用正则表达式匹配字符串。可使用所有的JavaScript正则表达式。
如果没有指定式样前缀,Selenium假定其为″glob″式样。
Selenium Actions
addLocationStrategy (strategyName, 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意味着我们更愿意使用本地XPfalse则意味着我们将只使用JS XPath
altKeyDown()
按下alt键并保持其按下状态,直到doAltUp()被调用或一个新的页面被加载。
altKeyUp()
answerOnNextPrompt (answer)
通知Selenium返回下一次JavaScript prompt[window.prompt()]所指定的回答字符串。
&&·answer –&对弹出的提示所给与的回答
assignId (locator,identifier)
临时为指定元素设定一个″id″属性,使你可以在将来使用其ID,以代替缓慢且更复杂的XPath。该ID将在页面重载后消失。
&&&&·locator –&指向某个元素的元素定位器
&&·identifier –&为指定元素作为ID使用的字符串
暂停当前正在进行的测试,并等待用户按下继续按钮。这个命令对于调试非常有用,但使用时要特别小心,因为他将强制暂停自动化测试,直到用户手动操作。
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)
模拟用户点击弹出窗体或表单标题栏上的″关闭″按钮。
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。
模拟用户点击其浏览器上的”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)
在测试框架中打开一个URL,可以为相对和绝对URLs。”open”命令将等待页面加载完成才继续进行,也就是明确的指名”并等待”后缀。注意:由于浏览器安全策略(相同来源方针)这个URL必须和当前运行的HTML在相同的域。如果你不得不在另一个域打开一个URL,则需要用Selenium服务在另一个域去打开一个新的浏览器会话。
&&&&·url –&要打开的URL,可以为空
&&&&·windowID –&要选择窗体的JavaScript window ID
pause(waitTime)
等待指定时间(以毫秒为单位)
&&&&·waitTime –&要睡眠的时间(以毫秒为单位)
模拟用户点击浏览器上的”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[“subframe”]
&&&&·locator –&一个用于识别框架或子框架的元素定位器
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.o window ID (你可以用于&selectWindow()) is “myNewWindow”
在某些情况,Selenium会无法截取window.open的调用(例如,如果该调用发生在”onLoad”事件之间或之前)。(该BUG标记为SEL-339)。在这些情况,你可以使用Selenium的openWindow命令强制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(,variableName)
该命令是存储表达式的同义词。
&&&&· –&要存储的值
&&&&·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 –&要录入的值
uncheck(locator)
取消选中一个关联性按钮(checkbox/radio)
&&&&·locator –&一个元素定位器
waitForCondition(script,timeout)
重复执行指定JavaScript片段直到其值为”true”。
该片段可以有多行,但只考虑其最后一行的结果。
要注意:默认情况下,该片段会在运行者的测试窗体运行,而不是在你的应用程序窗体。要得到你的应用程序窗体,你可以使用JavaScript片段selenium.browserbot.getCurrentWindow(),然后让你的JavaScript在那运行。
&&&&·script –&要运行的JavaScript片段
&&&&·timeout –以毫秒为单位,超过后该命令将返回错误。
waitForFrameToLoad(frameAddress,timeout)
等待一个新的框架加载。
Selenium通常会持续跟踪新页面和框架的加载状态,当其第一次注意到页面加载完成,将会设定一个”newPageLoaded”标志。
查看waitForPageToLoad获得更多信息。
&&&&·frameAddress –&服务端的框架地址
&&&&·timeout -&以毫秒为单位,超过后该命令将返回错误。
waitForPageToLoad(timeout)
等待一个新的页面加载。
你可以使用此命令以代替”AndWait”后缀,”clickAndWait”,”selectAndWait”,”typeAndWait”等(仅在JS API中有效)。
Selenium通常会持续跟踪新页面的加载状态,当其第一次注意到页面加载完成,将会设定一个”newPageLoaded”标志。当此标志变为false后再运行其他Selenium命令。因此,如果你要等待一个页面加载完成,当一个Selenium命令导致一个页面加载后就需立即开始等待。
&&&&·timeout&-&以毫秒为单位,超过后该命令将返回错误。
waitForPopUp(windowID,timeout)
等待一个弹出窗体出现和加载。
&&&&·windowID –&将出现窗体的JavaScript&窗体ID
&&&&·timeout -&以毫秒为单位,超过后该命令将返回错误。
windowFocus()
将焦点赋给当前选择窗体
windowMaximize()
重新设定当前窗体大小为全屏
Selenium Accessors
assertErrorOnNext(message)
告诉Selenium在下一个命令执行时期待有错误。
&&&&·message –&我们所期望的错误信息。如果出现不正确的错误信息,该命令将失败。
同断言相关联,自动生成:
&&&&·assertNotErrorOnNext(message)
&&&&·verifyErrorOnNext(message)
&&&&·verifyNotErrorOnNext(message)
&&&&·waitForErrorOnNext(message)
&&&&·waitForNotErrorOnNext(message)
assertFailureOnNext(message)
告诉Selenium在下一个命令执行时期待有失败。
&&&&·message –&我们所期望的失败信息。如果出现不正确的失败信息,该命令将失败。
同断言相关联,自动生成:
&&&&·assertNotFailureOnNext(message)
&&·verifyFailureOnNext(message)
&&·verifyNotFailureOnNext(message)
&&·waitForFailureOnNext(message)
&&·waitForNotFailureOnNext(message)
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)
返回在之前动作所产生的JavaScript警告消息,如果没有警告将失败。
得到一个警告同手动点击OK有着相同的效果。如果产生了一个警告,而你并不去得到/验证它,那么下一个Selenium动作将失败。
注意:在Selenium中,JavaScript警告将不会弹出一个可见的警告对话框。
注意:Selenium不支持在页面的onload()事件句柄中所产生的JavaScript警告。在这种情况下,将会生成一个可见的对话框,Selenium将被悬停直到手动点击OK。
&&最近JavaScript的警告消息
同断言相关联,自动生成:
&&&&·assertAlert(pattern)
&&·assertNotAlert(pattern)
&&·verifyAlert(pattern)
&&·verifyNotAlert(pattern)
&&·waitForAlert(pattern)
&&·waitForNotAlert(pattern)
storeAllButtons(variableName)
返回页面上所有按钮的ID集。
如果被给与的按钮没有ID,则将在结果数组中显示为””。
&&页面上所有按钮的ID集。
同断言相关联,自动生成:
&&&&·assertAllButtons(pattern)
&&&&·assertNotAllButtons(pattern)
&&&&·verifyAllButtons(pattern)
&&&&·verifyNotAllButtons(pattern)
&&&&·waitForAllButtons(pattern)
&&&&·waitForNotAllButtons(pattern)
storeAllFields(variableName)
返回页面上所有可输入域的ID集。
如果被给与的域没有ID,则将在结果数组中显示为””
&&页面上所有域的ID集。
同断言相关联,自动生成:
&&&&·assertAllFields(pattern)
&&&&·assertNotAllFields (pattern)
&&&&·verifyAllFields (pattern)
&&&&·verifyNotAllFields (pattern)
&&&&·waitForAllFields (pattern)
&&&&·waitForNotAllFields (pattern)
storeAllLinks(variableName)
返回页面上所有链接的ID集。
如果被给与的链接没有ID,则将在结果数组中显示为””
&&页面上所有链接的ID集。
同断言相关联,自动生成:
&&&&·assertAllLinks(pattern)
&&&&·assertNotAllLinks (pattern)
&&&&·verifyAllLinks (pattern)
&&&&·verifyNotAllLinks (pattern)
&&&&·waitForAllLinks (pattern)
&&&&·waitForNotAllLinks (pattern)
storeAllWindowIds(variableName)
返回所有浏览器已知的窗体ID集。
&&所有浏览器已知的窗体ID集。
同断言相关联,自动生成:
&&&&·assertAllWindowIds (pattern)
&&·assertNotAllWindowIds (pattern)
&&·verifyAllWindowIds (pattern)
&&·verifyNotAllWindowIds (pattern)
&&·waitForAllWindowIds (pattern)
&&·waitForNotAllWindowIds (pattern)
storeAllWindowNames(variableName)
返回所有浏览器已知的窗体名称集。
&&所有浏览器已知的窗体名称集。
同断言相关联,自动生成:
&&&&·assertAllWindowNames (pattern)
&&·assertNotAllWindowNames (pattern)
&&·verifyAllWindowNames (pattern)
&&·verifyNotAllWindowNames (pattern)
&&·waitForAllWindowNames (pattern)
&&·waitForNotAllWindowNames (pattern)
storeAllWindowTitles(variableName)
返回所有浏览器已知的窗体标题集。
&&所有浏览器已知的窗体标题集。
同断言相关联,自动生成:
&&&&·assertAllWindowTitles (pattern)
&&·assertNotAllWindowTitles (pattern)
&&·verifyAllWindowTitles (pattern)
&&·verifyNotAllWindowTitles (pattern)
&&·waitForAllWindowTitles (pattern)
&&·waitForNotAllWindowTitles (pattern)
storeAttribute(attributeLocator,variableName)
获得一个元素属性值。
&&&&·attributeLocator –&由@符号开头,后跟随属性名,如”foo@bar”
&&&&·variableName –&用于存储结果的变量名。
&&指定属性的值
同断言相关联,自动生成:
&&&&·assertAttribute (attributeLocator, pattern)
&&·assertNotAttribute (attributeLocator, pattern)
&&·verifyAttribute (attributeLocator, pattern)
&&·verifyNotAttribute (attributeLocator, pattern)
&&·waitForAttribute (attributeLocator, pattern)
&&·waitForNotAttribute (attributeLocator, pattern)
storeAttributeFromAllWindows(attributeName,variableName)
返回所有已知窗体的某些属性的每一个实例。
&&&&·attributeName –&窗体某属性的名称
&&&&·variableName -&用于存储结果的变量名。
&&从所有已知窗体获得的该属性的数值集。
同断言相关联,自动生成:
&&&&·assertAttributeFromAllWindows (attributeName, pattern)
&&·assertNotAttributeFromAllWindows (attributeName, pattern)
&&·verifyAttributeFromAllWindows (attributeName, pattern)
&&·verifyNotAttributeFromAllWindows (attributeName, pattern)
&&·waitForAttributeFromAllWindows (attributeName, pattern)
&&·waitForNotAttributeFromAllWindows (attributeName, pattern)
storeBodyText(variableName)
获取页面上所有文本。
&&页面上所有文本
同断言相关联,自动生成:
&&&&·assertBodyText (pattern)
&&·assertNotBodyText (pattern)
&&·verifyBodyText (pattern)
&&·verifyNotBodyText (pattern)
&&·waitForBodyText (pattern)
&&·waitForNotBodyText (pattern)
storeConfirmation(variableName)
返回在之前动作所产生的JavaScript确认消息。
默认情况下,confirm函数将返回true,同手动点击OK有着相同的效果。这可以通过之前执行chooseCancelOnNextConfirmation命令改变。如果产生了一个确认,而你并不去得到/验证它,那么下一个Selenium动作将失败。
注意:在Selenium中,JavaScript确认将不会弹出一个可见的对话框。
注意:Selenium不支持在页面的onload()事件句柄中所产生的JavaScript警告。在这种情况下,将会生成一个可见的对话框,Selenium将被悬停直到手动点击OK。
&&最近JavaScript的确认消息
同断言相关联,自动生成:
&&&&·assertConfirmation (pattern)
&&·assertNotConfirmation (pattern)
&&·verifyConfirmation (pattern)
&&·verifyNotConfirmation (pattern)
&&·waitForConfirmation (pattern)
&&·waitForNotConfirmation (pattern)
storeCookie(variableName)
返回当前测试下当前页面的所有cookies
&&当前测试下当前页面的所有cookies
同断言相关联,自动生成:
&&&&·assertCookie (pattern)
&&·assertNotCookie (pattern)
&&·verifyCookie (pattern)
&&·verifyNotCookie (pattern)
&&·waitForCookie (pattern)
&&·waitForNotCookie (pattern)
storeCursorPosition(locator,variableName)
返回所给与的输入元素或文本域的文本光标位置。
要注意,这并不在所有的浏览器中有效。
特别指出,如果光标/选择已经被JavaScript所清除,该命令将尝试返回光标所在的最后位置,即使光标已经不在该页面。这被归档为SEL-243。
如果指定元素不是一个可输入元素或文本域,或没有光标在此元素上,该方法将失败。
&&&&·locator –&一个指向输入元素或文本域的元素定位器
&&&&·variableName -&用于存储结果的变量名。
&&在该域中的光标数字位置
同断言相关联,自动生成:
&&&&·assertCursorPosition (locator,pattern)
&&·assertNotCursorPosition (locator,pattern)
&&·verifyCursorPosition (locator,pattern)
&&·verifyNotCursorPosition (locator,pattern)
&&·waitForCursorPosition (locator,pattern)
&&·waitForNotCursorPosition (locator,pattern)
storeElementHeight(locator,variableName)
返回元素的高度
&&&&·locator –&一个指向元素的元素定位器
&&&&·variableName -&用于存储结果的变量名。
&&元素的高度
同断言相关联,自动生成:
&&&&·assertElementHeight (locator,pattern)
&&·assertNotElementHeight (locator,pattern)
&&·verifyElementHeight (locator,pattern)
&&·verifyNotElementHeight (locator,pattern)
&&·waitForElementHeight (locator,pattern)
&&·waitForNotElementHeight (locator,pattern)
storeElementIndex(locator,variableName)
获取元素相对于其父元素的索引(从0开始)。注释节点和空文本节点将被忽略。
&&&&·locator –&一个指向元素的元素定位器
&&&&·variableName -&用于存储结果的变量名。
&&元素相对于其父元素的索引(从0开始)
同断言相关联,自动生成:
&&&&·assertElementIndex (locator,pattern)
&&·assertNotElementIndex (locator,pattern)
&&·verifyElementIndex (locator,pattern)
&&·verifyNotElementIndex (locator,pattern)
&&·waitForElementIndex (locator,pattern)
&&·waitForNotElementIndex (locator,pattern)
storeElementPositionLeft(locator,variableName)
返回元素的水平位置
&&&&·locator –&一个指向元素的元素定位器或元素本身
&&&&·variableName -&用于存储结果的变量名。
&&到框架边缘的像素。
同断言相关联,自动生成:
&&&&·assertElementPositionLeft (locator,pattern)
&&·assertNotElementPositionLeft (locator,pattern)
&&·verifyElementPositionLeft (locator,pattern)
&&·verifyNotElementPositionLeft (locator,pattern)
&&·waitForElementPositionLeft (locator,pattern)
&&·waitForNotElementPositionLeft (locator,pattern)
storeElementPositionTop(locator,variableName)
返回元素的纵向位置
&&&&·locator –&一个指向元素的元素定位器或元素本身
&&&&·variableName -&用于存储结果的变量名。
&&到框架边缘的像素。
同断言相关联,自动生成:
&&&&·assertElementPositionTop (locator,pattern)
&&·assertNotElementPositionTop (locator,pattern)
&&·verifyElementPositionTop (locator,pattern)
&&·verifyNotElementPositionTop (locator,pattern)
&&·waitForElementPositionTop (locator,pattern)
&&·waitForNotElementPositionTop (locator,pattern)
storeElementWidth(locator,variableName)
返回元素的宽度
&&&&·locator –&一个指向元素的元素定位器
&&&&·variableName -&用于存储结果的变量名。
&&元素的宽度(以像素为单位)
同断言相关联,自动生成:
&&&&·assertElementWidth (locator,pattern)
&&·assertNotElementWidth (locator,pattern)
&&·verifyElementWidth (locator,pattern)
&&·verifyNotElementWidth (locator,pattern)
&&·waitForElementWidth (locator,pattern)
&&·waitForNotElementWidth (locator,pattern)
storeEval(script,variableName)
获得指定JavaScript片段执行后的值。该片段可以有多行,但只返回最后一行的值。要注意到,默认情况下,该片段将在”selenium”对象本身的上下文中运行,因此其将提交给Selenium对象。用window将窗体提交给你的应用程序,如:
window.document.getElementById(‘foo’)
如果你不得不在你的应用程序页面使用一个定位器提交一个单元素,你可以用this.browserbot.findElement(“id=foo”),这里”id=foo”就是你的定位器。
&&&&·script –&要运行的JavaScript
&&&&·variableName -&用于存储结果的变量名。
&&片段执行后的值
同断言相关联,自动生成:
&&&&·assertEval (script,pattern)
&&·assertNotEval (script,pattern)
&&·verifyEval (script,pattern)
&&·verifyNotEval (script,pattern)
&&·waitForEval (script,pattern)
&&·waitForNotEval (script,pattern)
store(,variableName)
返回指定表达式。
由于JavaScript的预处理机制使其显得非常有用。它可以用于生成如assert和waitFor命令。
&&&&· –&要返回的值
&&&&·variableName -&用于存储结果的变量名。
&&通过的值
同断言相关联,自动生成:
&&&&·assert (,pattern)
&&·assertNot (,pattern)
&&·verify (,pattern)
&&·verifyNot (,pattern)
&&·waitFor (,pattern)
&&·waitForNot (,pattern)
storeHtmlSource(variableName)
返回”html”标签间的整个HTML源代码。
&&整个HTML源代码
同断言相关联,自动生成:
&&&&·assertHtmlSource (pattern)
&&·assertNotHtmlSource (pattern)
&&·verifyHtmlSource (pattern)
&&·verifyNotHtmlSource (pattern)
&&·waitForHtmlSource (pattern)
&&·waitForNotHtmlSource (pattern)
storeLocation(variableName)
取得当前页面的绝对路径
&&当前页面的绝对路径
同断言相关联,自动生成:
&&&&·assertLocation (pattern)
&&·assertNotLocation (pattern)
&&·verifyLocation (pattern)
&&·verifyNotLocation (pattern)
&&·waitForLocation (pattern)
&&·waitForNotLocation (pattern)
storeMouseSpeed(variableName)
返回在dragAndDrop&命令执行期间,”mousemove”事件时的像素数字(默认为10)
&&dragAndDrop&命令执行期间,”mousemove”事件时的像素数字(默认为10)
同断言相关联,自动生成:
&&&&·assertMouseSpeed (pattern)
&&·assertNotMouseSpeed (pattern)
&&·verifyMouseSpeed (pattern)
&&·verifyNotMouseSpeed (pattern)
&&·waitForMouseSpeed (pattern)
&&·waitForNotMouseSpeed (pattern)
storePrompt(variableName)
返回在之前动作所产生的JavaScript问题提示消息。
要成功挂起问题提示需要先运行answerOnNextPrompt命令。如果产生了一个问题提示,而你并不去得到/验证它,那么下一个Selenium动作将失败。
注意:在Selenium中,JavaScript确认将不会弹出一个可见的对话框。
注意:Selenium不支持在页面的onload()事件句柄中所产生的JavaScript问题提示。在这种情况下,将会生成一个可见的对话框,Selenium将被悬停直到手动点击OK。
&&最近JavaScript的问题提示消息
同断言相关联,自动生成:
&&&&·assertPrompt (pattern)
&&·assertNotPrompt (pattern)
&&·verifyPrompt (pattern)
&&·verifyNotPrompt (pattern)
&&·waitForPrompt (pattern)
&&·waitForNotPrompt (pattern)
storeSelectedId(selectLocator,variableName)
获取从指定选择元素中选择的选项元素ID。
&&&&·selectLocator -&一个用于识别下拉菜单的元素定位器
&&&&·variableName -&用于存储结果的变量名。
&&从指定选择元素中选择的选项元素ID
同断言相关联,自动生成:
&&&&·assertSelectedId (selectLocator,pattern)
&&·assertNotSelectedId (selectLocator,pattern)
&&·verifySelectedId (selectLocator,pattern)
&&·verifyNotSelectedId (selectLocator,pattern)
&&·waitForSelectedId (selectLocator,pattern)
&&·waitForNotSelectedId (selectLocator,pattern)
storeSelectedIds(selectLocator,variableName)
从指定选择或多选元素中获取选择的选项元素ID集。
&&&&·selectLocator -&一个用于识别下拉菜单的元素定位器
&&&&·variableName -&用于存储结果的变量名。
&&从指定选择或多选元素中选择的选项元素ID集合数组
同断言相关联,自动生成:
&&&&·assertSelectedIds (selectLocator,pattern)
&&·assertNotSelectedIds (selectLocator,pattern)
&&·verifySelectedIds (selectLocator,pattern)
&&·verifyNotSelectedIds (selectLocator,pattern)
&&·waitForSelectedIds (selectLocator,pattern)
&&·waitForNotSelectedIds (selectLocator,pattern)
storeSelectedIndex(selectLocator,variableName)
从指定的选择元素中获取被选项索引(从0开始)。
&&&&·selectLocator -&一个用于识别下拉菜单的元素定位器
&&&&·variableName -&用于存储结果的变量名。
&&从指定选择元素中选择的选项元素索引
同断言相关联,自动生成:
&&&&·assertSelectedIndex (selectLocator,pattern)
&&·assertNotSelectedIndex (selectLocator,pattern)
&&·verifySelectedIndex (selectLocator,pattern)
&&·verifyNotSelectedIndex (selectLocator,pattern)
&&·waitForSelectedIndex (selectLocator,pattern)
&&·waitForNotSelectedIndex (selectLocator,pattern)
storeSelectedIndexs(selectLocator,variableName)
从指定的选择或多选元素中获取被选项索引(从0开始)集。
&&&&·selectLocator -&一个用于识别下拉菜单的元素定位器
&&&&·variableName -&用于存储结果的变量名。
&&从指定选择或多选元素中选择的选项元素索引集合数组
同断言相关联,自动生成:
&&&&·assertSelectedIndexs (selectLocator,pattern)
&&·assertNotSelectedIndexs (selectLocator,pattern)
&&·verifySelectedIndexs (selectLocator,pattern)
&&·verifyNotSelectedIndexs (selectLocator,pattern)
&&·waitForSelectedIndexs (selectLocator,pattern)
&&·waitForNotSelectedIndexs (selectLocator,pattern)
storeSelectedLabel(selectLocator,variableName)
从指定的选择元素中获取所选择的选项标签(可见文本)。
&&&&·selectLocator -&一个用于识别下拉菜单的元素定位器
&&&&·variableName -&用于存储结果的变量名。
所选择的选项标签
同断言相关联,自动生成:
&&&&·assertSelectedLabel (selectLocator,pattern)
&&·assertNotSelectedLabel (selectLocator,pattern)
&&·verifySelectedLabel (selectLocator,pattern)
&&·verifyNotSelectedLabel (selectLocator,pattern)
&&·waitForSelectedLabel (selectLocator,pattern)
&&·waitForNotSelectedLabel (selectLocator,pattern)
storeSelectedLabels(selectLocator,variableName)
从指定的选择或多选元素中获取所选择的选项标签(可见文本)。
&&&&·selectLocator -&一个用于识别下拉菜单的元素定位器
&&&&·variableName -&用于存储结果的变量名。
所选择的选项标签
同断言相关联,自动生成:
&&&&·assertSelectedLabel (selectLocator,pattern)
&&·assertNotSelectedLabel (selectLocator,pattern)
&&·verifySelectedLabel (selectLocator,pattern)
&&·verifyNotSelectedLabel (selectLocator,pattern)
&&·waitForSelectedLabel (selectLocator,pattern)
&&·waitForNotSelectedLabel (selectLocator,pattern)
storeSelectedValue(selectLocator,variableName)
从指定的选择元素中获取所选择的选项值(值属性)。
&&&&·selectLocator -&一个用于识别下拉菜单的元素定位器
&&&&·variableName -&用于存储结果的变量名。
所选择的选项值
同断言相关联,自动生成:
&&&&·assertSelectedValue (selectLocator,pattern)
&&·assertNotSelectedValue (selectLocator,pattern)
&&·verifySelectedValue (selectLocator,pattern)
&&·verifyNotSelectedValue (selectLocator,pattern)
&&·waitForSelectedValue (selectLocator,pattern)
&&·waitForNotSelectedValue (selectLocator,pattern)
storeSelectedValues(selectLocator,variableName)
从指定的选择或多选元素中获取所有所选择的选项值(值属性)。
&&&&·selectLocator -&一个用于识别下拉菜单的元素定位器
&&&&·variableName -&用于存储结果的变量名。
所有所选择的选项值数组
同断言相关联,自动生成:
&&&&·assertSelectedValues (selectLocator,pattern)
&&·assertNotSelectedValues (selectLocator,pattern)
&&·verifySelectedValues (selectLocator,pattern)
&&·verifyNotSelectedValues (selectLocator,pattern)
&&·waitForSelectedValues (selectLocator,pattern)
&&·waitForNotSelectedValues (selectLocator,pattern)
storeSelectOptions(selectLocator,variableName)
获取指定选择下拉框的选项标签。
&&&&·selectLocator -&一个用于识别下拉菜单的元素定位器
&&&&·variableName -&用于存储结果的变量名。
指定选择下拉框的选项标签数组
同断言相关联,自动生成:
&&&&·assertSelectedOptions (selectLocator,pattern)
&&·assertNotSelectedOptions (selectLocator,pattern)
&&·verifySelectedOptions (selectLocator,pattern)
&&·verifyNotSelectedOptions (selectLocator,pattern)
&&·waitForSelectedOptions (selectLocator,pattern)
&&·waitForNotSelectedOptions (selectLocator,pattern)
storeTable(tableCellAddress,variableName)
从某个表的单元格中获取文本。单元格地址语法如tablelocator.row.column,这里的row和column从0开始。
&&&&·tableCellAddress –&一个单元格地址,如”foo.1.4”
&&&&·variableName -用于存储结果的变量名。
&&从指定单元格取出的文本
同断言相关联,自动生成:
&&&&·assertTable (tableCellAddress,pattern)
&&·assertNotTable (tableCellAddress,pattern)
&&·verifyTable (tableCellAddress,pattern)
&&·verifyNotTable (tableCellAddress,pattern)
&&·waitForTable (tableCellAddress,pattern)
&&·waitForNotTable (tableCellAddress,pattern)
storeText(locator,variableName)
获取元素的文本。这对任何包含文本的元素都有效。该命令即可以用于如火狐浏览器的textContent,也可以用于如IE浏览器的innerText——显示给用户的。
&&&&·locator&-&一个元素定位器
&&&&·variableName -&用于存储结果的变量名。
&&元素的文本
同断言相关联,自动生成:
&&&&·assertText (locator,pattern)
&&·assertNotText (locator,pattern)
&&·verifyText (locator,pattern)
&&·verifyNotText (locator,pattern)
&&·waitForText (locator,pattern)
&&·waitForNotText (locator,pattern)
storeTitle(variableName)
获取当前页面的标题。
&&当前页面的标题。
同断言相关联,自动生成:
&&&&·assertTitle (pattern)
&&·assertNotTitle (pattern)
&&·verifyTitle (pattern)
&&·verifyNotTitle (pattern)
&&·waitForTitle (pattern)
&&·waitForNotTitle (pattern)
storeValue(locator,variableName)
获得一个输入域(或任何包含value参数的元素)的值(已去除空格)。对于checkbox/radio元素,其值为”on”还是”off”依赖于该元素是否被选中。
&&&&·locator&-&一个元素定位器
&&&&·variableName -&用于存储结果的变量名。
&&元素值,对于checkbox/radio元素则为”on/off”
同断言相关联,自动生成:
&&&&·assertValue (locator,pattern)
&&·assertNotValue (locator,pattern)
&&·verifyValue (locator,pattern)
&&·verifyNotValue (locator,pattern)
&&·waitForValue (locator,pattern)
&&·waitForNotValue (locator,pattern)
storeWhetherThisFrameMatchFrame(currenFrameString,target,variableName)
确定当前框架是否包含该运行代码。
这对于代理注入代码模式非常有用,这些代码在每个浏览器框架和窗体中运行,有时selenium server需要识别当前是哪个框架。这种情况下,当测试调用selectFrame,该程序将被每个框架调用以指出哪个框架被选择。被选择的框架将返回true,而其他将返回false。
&&&&·currenFrameString –&开始框架
&&&&·target –&新框架(也许与当前框架相关联)
&&&&·variableName -用于存储结果的变量名。
&&如果新框架为该代码的窗体,返回true
同断言相关联,自动生成:
&&&&·assertWhetherThisFrameMatchFrame (currenFrameString,&target)
&&·assertNotWhetherThisFrameMatchFrame (currenFrameString,&target)
&&·verifyWhetherThisFrameMatchFrame (currenFrameString,&target)
&&·verifyNotWhetherThisFrameMatchFrame (currenFrameString,&target)
&&·waitForWhetherThisFrameMatchFrame (currenFrameString,&target)
&&·waitForNotWhetherThisFrameMatchFrame (currenFrameString,&target)
storeWhetherThisWindowMatchWindow(currenWindowString,target,variableName)
确定当前窗体是否包含该运行代码。
这对于代理注入代码模式非常有用,这些代码在每个浏览器框架和窗体中运行,有时selenium server需要识别当前是哪个窗体。这种情况下,当测试调用selectWindow,该程序将被每个窗体调用以指出哪个窗体被选择。被选择的窗体将返回true,而其他将返回false。
&&&&·currenFrameString –&开始窗体
&&&&·target –&新窗体(也许与当前窗体相关联,如,”_parent”)
&&&&·variableName -&用于存储结果的变量名。
&&如果新窗体为该代码的窗体,返回true
同断言相关联,自动生成:
&&&&·assertWhetherThisWindowMatchWindow (currenWindowString,&target)
&&·assertNotWhetherThisWindowMatchWindow (currenWindowString,&target)
&&·verifyWhetherThisWindowMatchWindow (currenWindowString,&target)
&&·verifyNotWhetherThisWindowMatchWindow (currenWindowString,&target)
&&·waitForWhetherThisWindowMatchWindow (currenWindowString,&target)
&&·waitForNotWhetherThisWindowMatchWindow (currenWindowString,&target)
storeXpathCount(xpath,variableName)
返回匹配指定xpath的节点数,如”//table”将给出表的个数。
·xpath –&要计算的xpath表达式。不要用’count()’函数将该表达式包含起来,我们将自动帮你作这件事。
&&&&·variableName -&用于存储结果的变量名。
&&匹配指定xpath的节点数
同断言相关联,自动生成:
&&&&·assertXpathCount (xpath,&pattern)
&&·assertNotXpathCount (xpath,&pattern)
&&·verifyXpathCount (xpath,&pattern)
&&·verifyNotXpathCount (xpath,&pattern)
&&·waitForXpathCount (xpath,&pattern)
&&·waitForNotXpathCount (xpath,&pattern)
storeAlertPresent(variableName)
发生警告了?
该函数永远不会抛出异常
&&如果有警告返回true
同断言相关联,自动生成:
&&&&·assertAlertPresent ()
&&·assertNotAlertPresent ()
&&·verifyAlertPresent ()
&&·verifyNotAlertPresent ()
&&·waitForAlertPresent ()
&&·waitForNotAlertPresent ()
storeChecked(locator,variableName)
获取一个关联性按钮(checkbox/radio)是否被勾选。如果指定元素不存在或不是一个关联性按钮,将失败。
&&&&·locator–&一个执行checkbox或radio按钮的元素定位器
&&&&·variableName -&用于存储结果的变量名。
&&如果该checkbox被勾选,返回true,否则返回false
同断言相关联,自动生成:
&&&&·assertChecked (locator)
&&·assertNotChecked (locator)
&&·verifyChecked (locator)
&&·verifyNotChecked (locator)
&&·waitForChecked (locator)
&&·waitForNotChecked (locator)
storeConfirmationPresent(variableName)
confirm()被调用了?
该函数永远不会抛出异常
&&如果有一个未决的确认返回true
同断言相关联,自动生成:
&&&&·assertConfirmationPresent ()
&&·assertNotConfirmationPresent ()
&&·verifyConfirmationPresent ()
&&·verifyNotConfirmationPresent ()
&&·waitForConfirmationPresent ()
&&·waitForNotConfirmationPresent ()
storeEditable(locator,variableName)
判定指定的输入元素是否为可编辑,且ie没有被禁用。如果指定元素不为一个可输入元素,该函数将失败。
&&&&·locator –&一个元素定位器
&&&&·variableName -&用于存储结果的变量名。
&&如果输入元素可编辑返回true,否则返回false
同断言相关联,自动生成:
&&&&·assertEditable (locator)
&&·assertNotEditable (locator)
&&·verifyEditable (locator)
&&·verifyNotEditable (locator)
&&·waitForEditable (locator)
&&·waitForNotEditable (locator)
storeElementPresent(locator,variableName)
验证指定元素在页面上。
&&&&·locator –&一个元素定位器
&&&&·variableName -&用于存储结果的变量名。
&&如果该元素出现返回true,否则返回false
同断言相关联,自动生成:
&&&&·assertElementPresent (locator)
&&·assertNotElementPresent (locator)
&&·verifyElementPresent (locator)
&&·verifyNotElementPresent (locator)
&&·waitForElementPresent (locator)
&&·waitForNotElementPresent (locator)
storeOrdered(locator1,locator2,variableName)
检查这两个元素是否有相同的父级,且在DOM中为顺序亲属。两个相同元素将不考虑顺序。
&&&&·locator1 –&指向第一个元素的元素定位器
&&&&·locator2 –&指向第二个元素的元素定位器
&&&&·variableName -&用于存储结果的变量名。
&&如果元素1是元素2的兄长,返回true,否则返回false
同断言相关联,自动生成:
&&&&·assertOrdered (locator1,locator2)
&&·assertNotOrdered (locator1,locator2)
&&·verifyOrdered (locator1,locator2)
&&·verifyNotOrdered (locator1,locator2)
&&·waitForOrdered (locator1,locator2)
&&·waitForNotOrdered (locator1,locator2)
storePromptPresent(variableName)
发生提示了?
该函数永远不会抛出异常
&&如果有一个未决的提示返回true
同断言相关联,自动生成:
&&&&·assertPromptPresent ()
&&·assertNotPromptPresent ()
&&·verifyPromptPresent ()
&&·verifyNotPromptPresent ()
&&·waitForPromptPresent ()
&&·waitForNotPromptPresent ()
storeSomethingSelected(selectLocator,variableName)
判定一个下拉菜单是否选择了某个选项。
&&&&·selectLocator –&一个用于识别下拉菜单的元素定位器
&&&&·variableName -&用于存储结果的变量名。
&&如果选择某选项返回true,否则返回false
同断言相关联,自动生成:
&&&&·assertSomethingSelected (selectLocator)
&&·assertNotSomethingSelected (selectLocator)
&&·verifySomethingSelected (selectLocator)
&&·verifyNotSomethingSelected (selectLocator)
&&·waitForSomethingSelected (selectLocator)
&&·waitForNotSomethingSelected (selectLocator)
storeTextPresent(pattern,variableName)
验证指定文本出现在提交给用户的页面上。
&&&&·pattern –&用于匹配页面文本的范式
&&&&·variableName -&用于存储结果的变量名。
&&如果该范式匹配文本返回true,否则返回false
同断言相关联,自动生成:
&&&&·assertTextPresent (pattern)
&&·assertNotTextPresent (pattern)
&&·verifyTextPresent (pattern)
&&·verifyNotTextPresent (pattern)
&&·waitForTextPresent (pattern)
&&·waitForNotTextPresent (pattern)
storeVisible(locator,variableName)
判定指定元素是否可见。一个元素可以通过将其本身或其父级的CSS”visibility”属性设定为”hidden”,或将”dispaly”属性设定为”none”,以使其不可见。如果该元素不存在,此方法将失败。
&&&&·locator –&一个元素定位器
&&&&·variableName -&用于存储结果的变量名。
&&如果指定元素为可见返回true,否则返回false
同断言相关联,自动生成:
&&&&·assertVisible (locator)
&&·assertNotVisible (locator)
&&·verifyVisible (locator)
&&·verifyNotVisible (locator)
&&·waitForVisible (locator)
&&·waitForNotVisible (locator)
参数解释和变量
&&相关文章推荐
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:129394次
积分:2141
积分:2141
排名:第18614名
原创:81篇
转载:28篇
评论:48条
阅读:8404
(1)(2)(2)(3)(2)(2)(5)(1)(3)(5)(2)(4)(6)(3)(7)(2)(4)(4)(3)(7)(7)(6)(1)(1)(3)(1)(2)(2)(1)(12)(1)(1)(1)(2)
(window.slotbydup = window.slotbydup || []).push({
id: '4740881',
container: s,
size: '200,200',
display: 'inlay-fix'

我要回帖

更多关于 python selenium 鼠标 的文章

 

随机推荐