2016-10-14 10 views
0

Selenium webdriverを使用してログインフォームの検証を確認しています。パスワードフィールドはクリアされません。同様のコードがusernameフィールドで動作しています。何か不足していますか?clear on password要素がSelenium Webdriverで動作しない

it('Password is required', function(done) { 
    usernameElem.clear(); 
    // skipping the test because clearing password field does not work! 
    passwordElem.clear(); 
    loginElem.click(); 
    driver.findElements(By.className('text-danger')).then(elements => { 
     elements.length.should.equal(2); 
     elements[1].getText().then(text => { 
     text.should.equal('Password is required.'); 
     done(); 
     }); 
    }); 
    }); 

答えて

1

私たちはラインのいずれかの例外を取得されていませんと仮定しています:

passwordElem.clear(); 

これは必要ありませんが、あなたは最初のパスワードフィールドをクリックすることができます(それがフォーカスを取得します)と、それをクリアします。

passwordElem.click(); 
passwordElem.clear(); 

パスワードフィールドをクリアする前にスリープ状態にすることができます。

Thread.sleep(3000); // Wait for 3 seconds 

明示的に待機して、パスワードフィールドをクリアしてから、クリアすることができます。

WebDriverWait wait = new WebDriverWait(driver, 15); 
wait.until(ExpectedConditions.elementToBeClickable(passwordElem)).clear(); 

あなたはパスワードフィールドが有効になっていて、Webページのソースコードごとに表示されていることを一度確認することができます。

System.out.println("Password field is enabled: " + passwordElem.isEnabled()); 
System.out.println("Password field is displayed: " + passwordElem.isDisplayed()); 

上記のステートメントのいずれかが偽言うならば、我々は理由を知っているだろうパスワードフィールドはクリアされません。

関連する問題