C# “网络驱动程序”;sendkeys";方法不';无法正确输入密码

C# “网络驱动程序”;sendkeys";方法不';无法正确输入密码,c#,visual-studio,selenium,webdriver,sendkeys,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”,它定位到用户名文本框并添

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

我正试图用我的用户名和密码登录我的公司网站

query.SendKeys("myusername");
query.SendKeys(Keys.Tab);
query.SendKeys("mypassword");
我的代码定位用户名文本框,输入“myusername”(示例),正确地在密码框中添加选项卡,但由于它应该在pw文本框中输入“mypassword”,它定位到用户名文本框并添加(显示“myusernamemypassword”)


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

SendKeys方法将向您调用它的WebElement对象(在本例中为query)发送字符。即使在切换到下一个对象之后,它仍然会向查询元素发送键。根据我的经验,使用键(比如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)