モーダルを閉じることができません。目的のURLにアクセスするとモーダルポップアップが表示されます。 1.私は、待っていると 2.また、近くに「警告」コード 3.すべてを経由して試してみましたあなたの助けのためのポップアップに モーダルポップアップを閉じることができません
感謝を閉じるには成功しなかった要素をクリックして試してみました
モーダルを閉じることができません。目的のURLにアクセスするとモーダルポップアップが表示されます。 1.私は、待っていると 2.また、近くに「警告」コード 3.すべてを経由して試してみましたあなたの助けのためのポップアップに モーダルポップアップを閉じることができません
感謝を閉じるには成功しなかった要素をクリックして試してみました
check , whether it is separate window, if it it then will code might be work
private static Object Handle1;
private static Object Handle2;
public static void switchToWindowsPopup() {
Set<String> handles = DriverManager.getCurrent().getWindowHandles();
Iterator<String> itr = handles.iterator();
Handle1 = itr.next();
Handle2 = Handle1;
while (itr.hasNext()) {
lastHandle = itr.next();
}
DriverManager.getCurrent().switchTo().window(Handle2.toString());
}
public static void switchToMainWindow() {
DriverManager.getCurrent().switchTo().window(Handle1.toString());
次のコードは、あなたを助けるかもしれない -
このようにまたは使用JavascriptExecuter
-
WebElement element = driver.findElement(By.xpath("//button[@class='close']"));
JavascriptExecutor js= (JavascriptExecutor)driver;
js.executeScript("arguments[0].click();", element);
私の推測では、ダイアログボックスを閉じるために、あなたは「x」をヒットする必要があるということでしょう。あなたがボタン要素がクリック可能になるのを待っているが、決してそうしないので、これを前提としています。だから、idはあなたのロケータが、より具体的な作ることをお勧め:これはそうでない場合は何が起こるかworks..or場合
@FindBy(xpath = "//button[@class='close']/span")
WebElement closeButton;
、私に知らせてください。
経過
予想時間は実際にあなたのロケータがないときに高速応答のための
おかげで私は要素が可視/ロケータできないことをタイムアウトエラーを取得@cathalコメントから固有の結果をに返します。同じクラス名
close
を持つ複数のclose button
要素があります。残念ながら、目に見えないダイアログ
close button
が表示されているので、困っています。あなたは、以下のような何かを試してみてください: -
WebDriverWait wait = new WebDriverWait(driver, 10); List<WebElement> elements = wait.until(ExpectedConditions .presenceOfAllElementsLocatedBy(By.cssSelector(".close"))); for (WebElement element : elements) { if (element.isDisplayed()) { element.click(); } }
は、ポップアップを連続的にチェックして終了する方法はありますか? – Gbru
は別々のiframe内のモーダルのですか? – Cathal
@cathal返信いただきありがとうございます。私が見ることができるものから、どのiframeも特定できません。最新の画像をご覧ください。 – Gbru
WebElementの選択方法を教えてください。 – Cathal