4

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

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

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

我的代码找到用户名文本框,输入“myusername”(示例),正确选择密码框,但随后应该在 pw 文本框中输入“mypassword”,它位于用户名文本框并添加(显示“我的用户名我的密码")

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

4

1 回答 1

5

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

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)。

于 2012-05-15T15:20:01.730 回答