答案 0 :(得分:6)
要从提示框中读取文本,请验证并关闭提醒,您必须先切换到提示,然后按照以下步骤操作提到的步骤:
alert = chrome.switch_to_alert()
alert_text = alert.text
# validate the alert text
alert.accept()
但是,现在似乎switch_to_alert()
已弃用。因此,根据当前的实现,您需要使用:
alert = driver.switch_to.alert()
alert_text = alert.text
# validate the alert text
alert.accept()
根据最佳做法,您应始终为alert_is_present()引导 WebDriverWait ,然后再切换到提示,如下所示:
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.common.by import By
from selenium.webdriver.support import expected_conditions as EC
# other lines of code
alert = WebDriverWait(driver, 5).until(EC.alert_is_present)
alert_text = alert.text
# validate the alert text
alert.accept()
中找到相关的讨论
答案 1 :(得分:2)
首先,您应该切换到警告窗口:
alert = driver.switch_to_alert()
然后使用alert.text
在警报窗口中获取文本。并检查您的文本是否正确。
然后执行此类操作(关闭警报窗口):
alert.accept()
答案 2 :(得分:2)
我的框架中也有类似的情况,这就是我解决它的方法。
if (_driver.FindElement(By.XPath("//*[text()[contains(.,'No Sales Found')]")).Enabled)
{
//Do Something
}
将此功能置于可能导致错误的功能之后。此外,此示例使用C#和_driver作为驱动程序,这可能与您使用的不同。
答案 3 :(得分:1)
我不懂python,但在java中你可以这样:
Alert alert = driver.switchTo().alert();
String msg=alert.getText();
if(msg.equals("Message you compare"))
{
alert.accept();
}