4

Visual Studio C# 言語で Selenium Webdriver を使用しています。Nunit はテスト ドライバーです。

ユーザー名とパスワードを使用して会社の Web サイトにログインしようとしています。

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

私のコードはユーザー名のテキストボックスを見つけ、「myusername」(例)を入力し、パスワードボックスにタブを正しく入力しますが、「mypassword」をpwテキストボックスに入力する必要があるため、ユーザー名のテキストボックスまで配置され、追加されます(「 myusernamemypassword")

パスワードを入力できない理由は何ですか?

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 に答える