Click the javascript popup through webdriver
Question: I am scraping a webpage using Selenium webdriver in Python

The webpage I am working on, has a form. I am able to fill the form and then I
click on the Submit button.

It generates an popup window( Javascript Alert). I am not sure, how to click
the popup through webdriver.

Any idea how to do it ?

Thanks


Answer: Python Webdriver Script:

    
    
    from selenium import webdriver
    
    browser = webdriver.Firefox()
    browser.get("http://sandbox.dev/alert.html")
    alert = browser.switch_to_alert()
    alert.accept()
    browser.close()
    

Webpage (alert.html):

    
    
    <html><body>
        <script>alert("hey");</script>
    </body></html>
    

Running the webdriver script will open the HTML page that shows an alert.
Webdriver immediately switches to the alert and accepts it. Webdriver then
closes the browser and ends.

If you are not sure there will be an alert then you need to catch the error
with something like this.

    
    
    from selenium import webdriver
    
    browser = webdriver.Firefox()
    browser.get("http://sandbox.dev/no-alert.html")
    
    try:
        alert = browser.switch_to_alert()
        alert.accept()
    except:
        print "no alert to accept"
    browser.close()
    

If you need to check the text of the alert, you can get the text of the alert
by accessing the text attribute of the alert object:

    
    
    from selenium import webdriver
    
    browser = webdriver.Firefox()
    browser.get("http://sandbox.dev/alert.html")
    
    try:
        alert = browser.switch_to_alert()
        print alert.text
        alert.accept()
    except:
        print "no alert to accept"
    browser.close()
    

