专注于自动化测试,性能测试.......

WatiN自定义TextField对象

上一篇 / 下一篇  2011-02-16 09:20:24 / 天气: 阴雨 / 个人分类:WatiN

&P k2jZe0k}0  今天遇到一个问题,Watin在运行过程中定位一个日期输入框时,无法找到该控件。报错信息为“ Could not find INPUT (hidden) or INPUT (password) or INPUT (text) or INPUT (textarea) or TEXTAREA element tag matching criteria”。

.?U9l:M%|L]R|051Testing软件测试网`;tLA#[Xk

  该控件的Html代码为“<input type="calendar" mod_calendar_rangestart="#" mod_notice_tip="mm-dd-yyyy" mod="notice|calendar" name="depart_date" id="depart_date" class="pubglobal_input pubglobal_inputfix" style="color: gray;" autocomplete="off">”。经过查找原因,发现该控件的Type属性为自定义的“calendar”,而致使Watin无法查找到该控件。这样的话只能通过自定义一个calendar类,来继承TextField类来扩展发现该控件。具体做法如下:51Testing软件测试网j;tIN7V

51Testing软件测试网0M*nB uO6r+kRO

1.创建一个自定义的类,这里比如创建calendar类,继承于TextField类,代码如下:51Testing软件测试网V+[3h5U2L3U{t4lS

51Testing软件测试网&|5vI| uqenHg

 [ElementTag("input", InputType = "calendar", Index = 2)]51Testing软件测试网/}[0rOu#Bt:z
     public class calendar:TextField
k%m2Xs pM]0    {
yU2rP2[q0        public   calendar(DomContainer domContainer, ElementFinder finder):base( domContainer,  finder)
D:v&w$m"U{1|3R0        { }
oH"i-e @b?B0        public calendar(DomContainer domContainer, INativeElement element)
'H2SE4o V1rLx$J0            : base(domContainer, element)
mP3_3};d U5x9p0        { }51Testing软件测试网$ZYu!l(~B} c O"@'{

51Testing软件测试网$aF*do}*C0O

2.然后就可以在测试代码中编写代码来定位到该类型的控件,代码如下:

(r7G t}D lq e B0

6B8T-j+x+] N.g0  var depart_date = ie.ElementOfType<calendar>("depart_date");
%i;la@)o&H\0            depart_date.TypeText("Feb-15-2011");

,Dm#Z??051Testing软件测试网x%C!pfeWQl'j.x tX

这样就可以查找并定位到该控件了。这仅仅是针对“type=‘calendar’”类型的控件,同理如果type类型为别的类型也是通过类似的方法实现。

0Fw3Plt1@)J.Q$Im0

Tc"nKkA0 51Testing软件测试网8aF'sJ4J z k*a6k


TAG: WatiN Watin

shanhulq的个人空间 引用 删除 shanhulq   /   2011-06-04 21:35:43
5
冰山一角 引用 删除 wxf_xsfy   /   2011-05-20 17:34:26
我用你那个控件代码试了一下,可以捕捉到控件并输入数据。另外对ActiveX控件的测试,开源工具或类库好像没有,也只有一些商业工具比如QTP,TC支持。
引用 删除 yanmoyixuan   /   2011-05-19 09:50:04
还有一个问题,watin可以测试页面的ActiveX控件吗?有没有类似的一个类库可以支持对ActiveX控件的自动化测试呢?
引用 删除 yanmoyixuan   /   2011-05-19 09:47:12
5
引用 删除 yanmoyixuan   /   2011-05-19 09:46:56
原帖由wxf_xsfy于2011-05-18 16:15:22发表
@yanmoyixuan
------------------------------------
你好,&lt;intput&gt;标签中没有type属性,wat.

我用的watin是2.0.50版,控件代码是<input name="USERNAME" id="USERNAME" value=""></input>用TextField(Find.ById("USERNAME"))提示找不到,但是在<input>中加type="text"就能够找到了
冰山一角 引用 删除 wxf_xsfy   /   2011-05-18 16:15:22
@yanmoyixuan
------------------------------------
你好,<intput>标签中没有type属性,watin也是可以找到该控件的,你那个控件的html代码是什么?最好是用watin比较新的版本。
引用 删除 yanmoyixuan   /   2011-05-09 14:53:01
您好,我最近刚接触到watin,看了您的文章,感觉受益非浅。
遇见一个问题,<input>标签中默认type="text", 用watin测试一个没有type的input标签时,用TextField(Find.ById("age"))会提示找不到这个元素,这种情况下应该怎么办呢?
 

评分:0

我来说两句

wxf_xsfy

wxf_xsfy

自动化测试的拥簇者,善于自动化测试的框架和工具开发,TIB工作室核心成员

日历

« 2024-04-15  
 123456
78910111213
14151617181920
21222324252627
282930    

数据统计

  • 访问量: 381267
  • 日志数: 79
  • 图片数: 1
  • 文件数: 1
  • 书签数: 3
  • 建立时间: 2007-09-19
  • 更新时间: 2018-01-30

RSS订阅

Open Toolbar