2017-01-10 22 views
0

モーダルを閉じることができません。目的のURLにアクセスするとモーダルポップアップが表示されます。 1.私は、待っていると 2.また、近くに「警告」コード 3.すべてを経由して試してみましたあなたの助けのためのポップアップに enter image description here enter image description hereモーダルポップアップを閉じることができません

感謝を閉じるには成功しなかった要素をクリックして試してみました

enter image description here

+0

は別々のiframe内のモーダルのですか? – Cathal

+0

@cathal返信いただきありがとうございます。私が見ることができるものから、どのiframeも特定できません。最新の画像をご覧ください。 – Gbru

+0

WebElementの選択方法を教えてください。 – Cathal

答えて

0
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()); 
0

次のコードは、あなたを助けるかもしれない -

このように

または使用JavascriptExecuter -

WebElement element = driver.findElement(By.xpath("//button[@class='close']")); 
JavascriptExecutor js= (JavascriptExecutor)driver; 
js.executeScript("arguments[0].click();", element); 
0

私の推測では、ダイアログボックスを閉じるために、あなたは「x」をヒットする必要があるということでしょう。あなたがボタン要素がクリック可能になるのを待っているが、決してそうしないので、これを前提としています。だから、idはあなたのロケータが、より具体的な作ることをお勧め:これはそうでない場合は何が起こるかworks..or場合

@FindBy(xpath = "//button[@class='close']/span") 
WebElement closeButton; 

、私に知らせてください。

+1

'XPath'が無効です:' @ class = 'close''の代わりに ' @class == 'close'' – Andersson

+0

ありがとう! – Cathal

+0

@Saurabh Gaurメソッドがうまくいってくれてありがとうございます。Firefoxとgeckodriverを使ってユーザーの旅の別の段階でポップアップが表示される理由は誰にも分かりますが、Chromeでサインインしようとするとポップアップdosntが再び現れます。 – Gbru

0

経過

予想時間は実際にあなたのロケータがないときに高速応答のための

おかげで私は要素が可視/ロケータできないことをタイムアウトエラーを取得@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(); 
    } 
} 
+0

は、ポップアップを連続的にチェックして終了する方法はありますか? – Gbru

関連する問題