C#跳过一些文本字段,如搜索框

时间:2012-01-13 07:20:06

标签: c# watin textfield

我只是使用来填充某些文本字段,但有时它会写入错误的文本字段,因为文本字段名称不清楚这里是我的代码

IE browser = new IE(site);
browser.TextField(Find.By("type","text")).TypeTextQuickly(username.ToString());
browser.TextField(Find.By("type", //"password")).TypeTextQuickly(pass.ToString());
browser.Button(Find.By("type", "submit")).Click();

3 个答案:

答案 0 :(得分:0)

编辑输入元素的HTML代码和设置ID。然后使用Find.ById

答案 1 :(得分:0)

一个选项可能是查看是否有可以首先找到的外部元素(例如Div),然后从该元素而不是浏览器变量中获取文本字段。例如,这可能是这样的:

Div div = browser.Div(Find.ById("divId"));
//Div div = browser.Div(Find.ByClass("divClass")); // or like this for instance...
TextField text = div.TextField(Find.By("type", "text"));
TextField password = div.TextField(Find.By("type", "password"));
Button submit = div.Button(Find.By("type", "submit"));

答案 2 :(得分:0)

我不清楚你对WatiN和测试的了解,所以我将从乞讨开始。首先,你需要进入你想要测试的网页,并且(在IE中)转到工具 - >开发者工具。单击菜单中的白色箭头,然后单击要使用的框。完成此操作后,开发人员工具将为您提供文本框的代码,包括您可以在代码中引用它的许多方法。例如,在IE中使用开发工具我可以自动登录到我的gmail,如下所示:

IE browser = new IE("https://accounts.google.com/ServiceLogin?service=mail&passive=true&rm=false&continue=http://mail.google.com/mail/&scc=1&ltmpl=default&ltmplcache=2"); 

browser.TextField(Find.ByID("Email")).TypeText("myemail@email.com");
browser.TextField(Find.ByID("Passwd")).TypeText("mypassword");
browser.Button(Find.ByID("signIn")).Click();

有许多Find.By命令,所以没有理由不能访问任何你想要的文本字段。您只需要html并且特定于您要写入哪一个。我希望这会有所帮助:)