selenium 获取当前框架、窗体焦点

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 获取当前框架、窗体焦点_第1张图片

对地区控件操作:

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了。

你可能感兴趣的:(JavaScript,框架,String,null,url,selenium)