selectFrame(locator)
在当前窗体中选择一个框架(你可以多次调用这个命令用于选择嵌套框架)。要选择父框架,用”relative=parent”作为定位器;要选择顶级框架,用”relative=top”。你同样可以通过基于0的索引号选择框架;用”index=0”选择第一个框架,或者用”index=2”选择第三个框架。
selectWindow(windowID)
选择一个弹出窗体;一旦一个弹出窗体被选中,所有的命令将指向该窗体。要再次选择主窗体,将对象设定为null。
注意:window的内在JavaScript的”name”属性和被给与的window文档(通常是你实际看到的,作为最终用户,在窗体的标题栏上)的”title”之间有一个很大的不同。”name”对于最终用户通常是不可见的;它是作为第二个参数”windowName”传递给JavaScript函数window.open(url,windowName,windowFeatures,replaceFlag)(被Selenium截取)。
Selenium有许多方法用于查找被”windowID”参数所提及的窗体对象。
1.) 如果windowID为null,(或是字符串”null”),则假定为用户是提交给由浏览器最初实例化的窗体。
2.) 如果”windowID”参数的值是当前应用窗体的一个JavaScript变量名,则假定该变量包含一个由调用JavaScript window.open()函数所产生的返回值。
3.) 另外,selenium looks in a hash it maintains that maps string names to window “names”.
4.) 如果失败了,我们将循环遍历所有已知的窗体以便试图找出适合的”title”。由于”title”不是必须唯一,因此可能会产生一些非期望的行为。
如果很难判定你所要操作的窗体的名称,你可以查看为识别通过window.open(被Selenium截取)所打开窗体的名称时所产生的selenium 日志消息。在每个窗体被打开时,你通常可以看到如下信息:
debug: window.open call intercepted; window ID (你可以用于 selectWindow()) is “myNewWindow”
在某些情况,Selenium会无法截取window.open的调用(例如,如果该调用发生在”onLoad”事件之间或之前)。(该BUG标记为SEL-339)。在这些情况,你可以使用Selenium的openWindow命令强制Selenium去通告打开窗体的名称,使用一个空(blank) url,像这样:openWindow(“”,”myFunnyWindow”)。
参数:
·windowID – 要选择窗体的JavaScript 窗体ID
WindowFocus()
selenium.MouseMove("id=A_P1100");
selenium.MouseOver("id=A_P1100");
selenium.MouseDown("id=A_P1100");
selenium.Click("id=A_P1100");
注:id=A_P1100 北京市ID
当输入框输入信息,那么提交按钮才可用,之前一直在使用selenium.Type("id=userName", userName); 来实现,但在回放过程中提交按钮一直没法激活,后来发现是鼠标事件问题导致,调整后代码为:
selenium.KeyDown("id=ctaskName", "d");
selenium.KeyPress("id=ctaskName", "d");
selenium.KeyUp("id=ctaskName", "d");
selenium.Type("id=userName", userName);
首先激活提交按钮,然后再来输入信息,就OK了。