4

私が望むのは、理想的には次のようにして、モーダル ダイアログを閉じることだけです。

browser.find_element_by_link_text("OK").click()

OKNoSuchElementException: Message: u'The element could not be found'リンク テキストを指定します。

これを行うときのxpathについても同じです:

browser.find_element_by_xpath("//*[@id=\"modal\"]/div/div[2]/div/a").click()

これは、ダイアログに焦点を当てる必要があるためだと思います。そうするために、私は試しました:

for handle in browser.window_handles:
    browser.switch_to_window(handle)
    if browser.find_element_by_class_name('popUp123')
        browser.find_element_by_link_text("OK").click()

NoSuchElementException: Message: u'The element could not be found'クラスのために与えます。

も試しbrowser.switch_to_frame(ID OR NAME)ましたが、フレームとしても見つかりませんでした。

露骨に明らかな何かが欠けていると教えてください。

関連するフレーム ソース (要約):

<body id="modal">
    <div class="popUp123">
    <div class="button">
        <div class="centerbutton">
            <a href="#" class="close" onclick=parent.close">
                <span>OK</span>
4

2 に答える 2

4

これはPythonの構文です

from selenium.webdriver.remote.webdriver import WebDriver

browser = WebDriver()

# do other stuff here

browser.switch_to_alert().accept()

# continue with other stuff here

アラート API は selenium.webdriver.common.alert にあります。

于 2013-12-02T00:17:18.233 に答える
3

以下のコードは Java を使用しています。以下のコードを Python 構文に変換して試すことができます。申し訳ありませんが、私は Webdriver - Java Tester です。Python コードを提供することはできません。これがあなたの要件を解決することを願っています。

Alert alertDialog = driver.switchTo().alert();
//Get the alert text
String alertText = alertDialog.getText();
//Click the OK button on the alert.
alertDialog.accept();

乾杯、

マヘシュ

于 2013-04-16T07:50:55.050 に答える