4

我想要的只是关闭一个模式对话框,理想情况下通过执行以下操作:

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

给出NoSuchElementException: Message: u'The element could not be found'OK 链接文本。

当我这样做时,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 回答