无法通过Watin进入文本字段

时间:2014-01-14 10:52:59

标签: c# web automation watin icsharpcode

我试图用Watin进行自动化,我遇到了一个问题,即在HTML正文中填写文本..

当我登录网站时,我设法到达搜索框并将输入放在那里,当它移动到第二页时甚至按“输入”,我无法到达那里的输入表格

这是我的代码 - 第一步是顺利但第二步不是。

 browser.GoTo("mywebsiteaddress");
        browser.TextField(Find.ByName("sysparm_search")).TypeText(ticketNumber.Text);
        System.Windows.Forms.SendKeys.SendWait("{ENTER}");

        //browser.TextField(Find.ByName("sys_display.sc_task.u_category")).TypeText(ticketNumber.Text);

        browser.Element("sc_task.work_notes");

当我使用谷歌浏览器

检查时,这是浏览器源代码
<textarea wrap="soft" onkeypress="" onkeyup="multiModified(this);fieldTyped(this);" onfocus="this.isFocused=true;" autocomplete="off" data-charlimit="false" rows="16" id="sc_task.work_notes" data-length="4000" style="; width:100%; overflow:auto; " name="sc_task.work_notes" onblur="this.isFocused=false;" onchange="this.isFocused=false;multiModified(this)" onkeydown="multiKeyDown(this);;"></textarea>

谢谢大家!

2 个答案:

答案 0 :(得分:0)

使用火狐。通过名称Firebug安装添加。 无论您想要检查哪个元素,都可以右键单击它并使用fire bug说明检查元素。

一旦知道该元素的id或名称,就可以使用Find类轻松访问它。

有时,元素与主框架位于不同的框架中。如果没有通过框架访问,则watin无法直接访问该元素。

答案 1 :(得分:0)

它可能包含许多内容,包括您正在寻找的内容,或者在加载之前您正在寻找它的可能性较小。如果在框架中,您需要指定哪个框架。如果没有加载,那么检查的简单方法是通过一个普通的sleep()调用,虽然这不是最好的长期。

当我处理一些我找不到的东西时,我会大量使用Flash()方法。在您的情况下,您可能希望从整个页面级别开始,一直向下到您的对象。 Flash()会向您显示您正在查看的位置,以确保您正在寻找页面上正确的位置,理想情况下可以找到您正在查找的内容的父元素,并能够正确识别和闪现该元素然后弄清楚什么是错误,试图得到你真正想要的textarea。