How to read the text from the alert box using Python + Selenium

To read the text from the Alert Box, validate and close the Alert you have to switch to the Alert first and follow the below mentioned steps:

alert = chrome.switch_to_alert()
alert_text = alert.text
# validate the alert text
alert.accept()

However, now it seems switch_to_alert() is deprecated. So as per the current implementation you need to use:

  • switch_to.alert() as follows:

    alert = driver.switch_to.alert()
    alert_text = alert.text
    # validate the alert text
    alert.accept()
    
  • As per best practices you should always induce WebDriverWait for the alert_is_present() before switching to an Alert as follows:

    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()
    

You can find a relevant discussion in Why switching to alert through selenium is not stable?


First of all, you should switch to the alert window:

alert = driver.switch_to_alert()

Then get the text on the alert window by using alert.text. And check your text for correctness.

Then do such action (close the alert window):

alert.accept()

I have similar situations as this in my framework as well, and this is how I solved it.

if (_driver.FindElement(By.XPath("//*[text()[contains(.,'No Sales Found')]")).Enabled)
{
     //Do Something
}

Put this after functionality that may bring the error up. Also, this example is using C# and _driver as the driver, which may be different from what you are using.