こんにちは私はSkypeのサイトにプログラムでログインしようとしていますが、パスワードフィールドはセレンでは見つかりません。私はC#でセレンのwebdriverをフレームワークを使用していプログラムでウェブサイトにログインし、フォームを送信
String loginURL = "https://login.skype.com/login?message=signin_continue&client_id=360605&redirect_uri=https%3A%2F%2Fsecure.skype.com%2Fportal%2Flogin%3Freturn_url%3Dhttps%253A%252F%252Fsecure.skype.com";
IWebDriver driver = new FirefoxDriver();
driver.Navigate().GoToUrl(loginURL);
IWebElement usrElement = driver.FindElement(By.Id("username"));
usrElement.Clear();
usrElement.Click();
usrElement.SendKeys(usr);
IWebElement nextBtnElement = driver.FindElement(By.Id("signIn"));
nextBtnElement.Click();
この作品、それが箱の中に自分のユーザー名を入力し、それは次のフィールド(パスワードフィールド)になったときセレンは入力フォームIDを見つけることができませんブラウザのソースインスペクタで「i0118」と表示されます。私はidを "パスワード"と名前を "passwd"として設定しようとしましたが、運はありません。ブラウザのインスペクタで「i0118」と表示されるのはなぜですか?ただし、同じfirefox実行ファイルを使用していても、ドライバオブジェクトは表示できません。あなたは、ユーザー名を入力した後(ID i0118
付き)パスワードフィールド(例えばAJAXを経由して)動的にロードされているので、ここで
が行われる(だ私のブラウザの検査官が
<input name="passwd" id="i0118" autocomplete="off" class="form-control" aria-describedby="passwordError passwordDesc" data-bind="
textInput: password,
hasFocusEx: isFocused,
placeholder: $placeholderText,
ariaLabel: str['CT_PWD_STR_PwdTB_Label'],
attr: { maxLength: svr.C ? 127 : null },
css: { 'has-error': error }" aria-label="Password" maxlength="127" type="password">
webdriverが見ているものの出力を得ることは可能ですか? Javascriptが利用できない可能性があります - ログインフォームにはそれが必要です。 –
はい、プログラムのデバッグを開始すると、実際には実行可能ファイルが起動され、フロントエンドで何が実行されているかを正確に確認し、要素などを検査できます。 –
私は現在のページソースをファイルに書き込むことができますはい、それはセレンが奇妙なものを自動化しているときに画面上に表示されているものとは異なるようですが、同じではないでしょうか? –