我想要的只是关闭模态对话框,理想情况是执行以下操作:
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>
答案 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