2016-04-19 12 views
0

Dropbox https://www.dropbox.com/chooserのログインを自動化しようとしていますが、すべてのページが正常に読み込まれていても要素が表示されていないという問題に直面しています。ここで要素が表示されませんターゲット呼び出し例外

はパスワードを充填するためのコードです:

​​

最後の行がターゲット呼び出し例外で失敗します。私もPassword.Clear();を使用したかったが、これも失敗していた。ここで

は、パスワードのロケータです:

[CacheLookup, FindsBy(How = How.Name, Using = "login_password")] 
protected override IWebElement Password { get; set; } 

何が起こっていますか?私は、ページのために待機メソッドを使用しようとしましたが、それは助けていません。誰がそれがクラッシュする理由を知っていますか?

+0

あなたはページが表示されている場合は、私がお勧め*のSendKeys()* – bit

+0

を行うと、いくつかの時間を費やしているとき* [パスワード]ボックスに*が表示されているかどうかを確認することができ、ページが完全に読み込まれていることは明らかです。少なくとも私はこのルールに頼っていました。 WebDriverWaitを使用したときにTimeoutで終了したということは、その要素が見つからなかったことです。これは私を混乱させています。webdriver.pageソースには表示されています... – Michal

答えて

1

私はにHTMLロケータを変更:

[CacheLookup, FindsBy(How = How.CssSelector, Using = ".text-input-wrapper [name=\"login_password\"]")] 
protected override IWebElement Password { get; set; } 

、これは正常に動作します。なぜ名前セレクタがそれを見つけることができないのか分かりません。これは私に誤解です。どちらの方法も有効です。ここではフィールド要素のページのソースは次のとおりです。

<div class="text-input-wrapper"> 
<input id="pyxl14559" class="password-input text-input-input" type="password" name="login_password"> 
<label for="pyxl14559" style="">Password</label> 
<small class="secondary-label"></small> 
<div class="password-caps-indicator">Caps lock is currently on</div> 
</div> 
+0

何度かロケータは正しいものの、失敗します。私たちはどちらが完全に実行されているかを選択する必要があります。:) –

関連する問題