我在Visual Studio C#语言中使用Selenium Webdriver。 Nunit是测试驱动程序。
我正在尝试使用我的用户名和密码登录我的公司网站。
query.SendKeys("myusername");
query.SendKeys(Keys.Tab);
query.SendKeys("mypassword");
我的代码找到用户名文本框,输入“myusername”(示例),正确键入密码框,但是因为它应该在pw文本框中输入“mypassword”,它位于用户名文本框并添加(显示“myusernamemypassword”)
不让我输入密码的原因是什么?
答案 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尽可能)。