您好我试图通过watin代码点击搜索按钮
IE ie = new IE();
ie.GoTo("http://www.apartments.com/");
ie.TextField(Find.ById("quickSearchLookup")).TypeText("5000");
Link link = ie.Link(Find.ByUrl("http://www.apartments.com/search/"));
link.Click();
我也试过这个
ie.TextField(Find.ById("quickSearchLookup")).Focus();
ie.TextField(Find.ById("quickSearchLookup")).Value = "5000";
而不是输入文字
但是点击它时会忽略我在文本框中输入的值并获得默认值 这是页面的html源代码
<input type="text" id="quickSearchLookup" class="quickSearchLookup hasPrefilledValue" autocorrect="false" placeholder="Search by Location or Point of Interest">
and here is the click button
<a href="http://www.apartments.com/search/" class="go" title="Search apartments for rent"><span>Go</span></a>
答案 0 :(得分:0)
该网站有代码,因此每当您专注于该页面时,它将清除文本框并从头开始。如果您正在运行程序并来回切换搜索框将被清除,请尽量避免这样做(SHIFT + TAB将焦点设置在IE-Chrome上等)。
以下代码可以满足您的需求,只需让它运行并在完成后返回浏览器(或者更好的是,如果您有多个监视器设置了代码顶部的断点,那么只需要浏览器打开将其移动到第二个监视器,您将能够在单步执行时看到发生的一切。
using (IE ie = new IE())
{
ie.GoTo("http://www.apartments.com/");
ie.ShowWindow(WatiN.Core.Native.Windows.NativeMethods.WindowShowStyle.ShowMaximized);
ie.WaitForComplete();
ie.TextField(Find.ById("quickSearchLookup")).TypeText("5000");
var go = ie.Link(Find.ByClass("go"));
if (go.Exists)
{
go.Click();
}
}
希望这有帮助。