51Testing软件测试论坛

标题: 怎么用WatiN定位这个textArea,嵌套在表格里的 [打印本页]

作者: zhangting85    时间: 2009-2-4 15:00
标题: 怎么用WatiN定位这个textArea,嵌套在表格里的
怎么用WatiN定位这个textArea,嵌套在表格里的

ie.TextField(Find.ByName("Text Area")).TypeText("aaaaaaaaa");
这样直接用的话就报错,说这个textfield不可见,焦点不能移到这个控件上。

谢谢!

[ 本帖最后由 zhangting85 于 2009-2-4 16:22 编辑 ]
作者: nic162534    时间: 2009-2-8 13:35
标题: 回复 1# 的帖子
试试使用ID来找,别用FindByName,用FindByID.
另外实在不行建议你使用WatiN Test Recorder来试试。据说他们开发团队正在开发Recorder 2.0版本。
作者: zhangting85    时间: 2009-2-9 09:57
用ID也是一样的啊。可以找到,但是焦点移不过去。就是不能typeText
recorder录出来是div.typeText,但是实际上div下面没有这个方法的,我觉得是这里录出来的不准
直接找到之后设这个textArea的value也试过了,Debug的时候看得到local变量里面这个textArea的value和text都变成我设的value值了,但是浏览器上看还是空白。是不是和上面那个uplevelDiv有关系呢。

[ 本帖最后由 zhangting85 于 2009-2-9 10:47 编辑 ]
作者: nic162534    时间: 2009-2-9 14:48
我觉得这种问题不应该是个bug.可能是方法的问题。
你的这个textfield的id是ct100_PlaceHolderMain_Readers_DownlevelTextBox。如果先声明的IE为ie,那么使用你那个方法应该是没错的。我不知道你的UI到底是什么样子。如果有个Web页面我看看那就更好了。
作者: zhangting85    时间: 2009-2-10 10:20
界面就是这样一个textArea,是sharepoint里面的people picker
作者: wfbobby    时间: 2009-11-30 17:34
标题: 回复 5# 的帖子
光看这部分代码,说不出太多建议,第一种可能,你这个textarea是不是一个frame或者iframe下的?或者是新pop窗口的?这2种情况处理方式都不一样。如果第一种frame或者iframe的情况(就是一个小窗口浮动在IE上方但是还是属于IE内。下面部分象被锁定不能编辑了)这种情况 ie.frame().TextField(Find.ByName("Text Area")).TypeText("aaaaaaaaa");这样才能定位到这个窗口。如果是第一种情况中新窗口。新窗口得到的textarea。必须
Browser new_b = IE.attachIE(Find.byurl("xxdfs"));然后 new_b.TextField(Find.ByName("Text Area")).TypeText("aaaaaaaaa");才能正确定位。第二种情况我看你写的代码我觉得ie.TextField(Find.ByName("Text Area")).TypeText("aaaaaaaaa");Byname不对应该是
ie.TextField(Find.byid("xdfsfsdfsf")).TypeText("aaaaaaaaa");希望对你有帮助
作者: JackieChan    时间: 2010-7-29 13:07
标题: 你最好先确认是不是对象未扎到的问题
我觉得楼主最好是确认对象确实找到了,因为Watin的对象识别层次跟Table没关系的,只会跟页面或者IFrame等有关;
确认对象存在了再看是否能Focus,我曾经是隐藏此段Focus执行才错误的。




欢迎光临 51Testing软件测试论坛 (http://bbs.51testing.com/) Powered by Discuz! X3.2