開始ページ[リンク] http://imgur.comのサインインリンクをクリックすると、ユーザ名とパスワードフィールドのモーダルウィンドウが表示されます。私は結果のページでパスワードフィールドを抽出しようとしていましたが、ユーザー名とパスワードフィールドの要素が見つかりませんでした。その瞬間にdriver.getPageSource();
を使ってソースコードをチェックしても、ユーザー名やパスワードの要素の兆候はありません。以下は、指定されたURLからパスワードフィールドを抽出するコードです。CSSセレクタを使用してモーダルウィンドウでパスワードフィールドを抽出できません - Selenium Java
pwd = driver.findElement(By.cssSelector("input[type='password']"));
私は以下に示すように、各iframe内のパスワードフィールドを探し始めてモーダルウィンドウをクリックするためのコードが
driver.findElement(By.partialLinkText("sign in")).click();
後、私は、彼らはアイフレームを使用していることが判明しました。
List<WebElement> iFrames = null;
WebElement iFramePwd=null;
iFrames = driver.findElements(By.tagName("iframe"));
if (iFrames.size() > 0) {
for (int l = 0; l < iFrames.size(); l++) {
try{ driver.switchTo().frame(l);
}
catch(NoSuchFrameException ljn){
System.out.println(ljn);
driver.switchTo().defaultContent();
continue;
}
try {
try{
iFramePwd = driver.findElement(By.cssSelector("input[type='password']"));
}
catch(NoSuchElementException lkn){
System.out.println(lkn);
driver.switchTo().defaultContent();
continue;
}
5として表示のiframeの
サイズが、私はいつもNoSuchFrameExceptionを得るのiFrameのIAMに切り替えてみてください。 ソースコードを分析するために指定されたURLにアクセスしてください。私はどこにポイントがないのかわかりません。モーダルウィンドウからパスワードフィールドを取得する方法はありますか?どんな助けでも大歓迎です。事前
が見える、最初にこれを選択します。また、あなたのコードスニペットに従って、 'xpath'が' css'でなくてはならない戦略によって見つけられるべきです。そしてそれは 'input [@ type = 'password']'を持っていなければなりません、タイプ属性値にアクセスする '@'がありません。 – Rao
フレームに切り替えると、私は常にNoSuchElementExceptionを実行しています。私はどこで間違っているのか分かりません。 – user6847225