Webdriver“sendkeys”方法无法正确输入密码

时间:2012-05-15 15:04:42

标签: c# visual-studio selenium webdriver sendkeys

我在Visual Studio C#语言中使用Selenium Webdriver。 Nunit是测试驱动程序。

我正在尝试使用我的用户名和密码登录我的公司网站。

query.SendKeys("myusername");
query.SendKeys(Keys.Tab);
query.SendKeys("mypassword");

我的代码找到用户名文本框,输入“myusername”(示例),正确键入密码框,但是因为它应该在pw文本框中输入“mypassword”,它位于用户名文本框并添加(显示“myusernamemypassword”)

不让我输入密码的原因是什么?

1 个答案:

答案 0 :(得分:5)

SendKeys方法将字符发送到您调用它的任何WebElement对象,在本例中为查询。即使在切换到下一个对象之后,它仍然会向查询元素发送密钥。根据我的经验,使用键(如tab)在元素之间跳转往往是不一致和不可靠的。相反,尝试这样的事情:

WebElement userNameField = driver.findElement(By.id("userNameTextBoxId"));
WebElement passwordField = driver.findElement(By.id("passwordTextBoxId"));
userNameField.sendKeys("myusername");
passwordField.sendKeys("mypassword");

如果你没有文本框上的id,你可以使用其他几个标识符,例如classname和xpath(虽然我在selenium中遇到过xpath的错误经验 - 使用id&#39 ; s尽可能)。