如何使用Webdriver& amp;蟒蛇?

时间:2013-04-11 14:54:01

标签: python google-chrome webdriver modal-dialog lettuce

我想要的只是关闭模态对话框,理想情况是执行以下操作:

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

为OK链接文本提供NoSuchElementException: 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>

2 个答案:

答案 0 :(得分: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();

干杯,

马赫什

答案 1 :(得分:3)

这是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