Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Switch to popup in python using selenium

How do I switch to a popup window in the below selenium program. I've looked up for all possible solutions but haven't been able to get my head around them. Please help!!

from selenium import webdriver
from splinter import Browser
from selenium.webdriver.common.keys import Keys
handle = []
driver = webdriver.Firefox()
driver.get("http://example.com/test.aspx")

driver.find_element_by_link_text("Site Actions").click()
driver.find_element_by_link_text('Edit Page').click()
select = driver.find_element_by_id('ctl00_PlaceHolderMain_ctl35_ctl00_SelectResult')
for option in select.find_elements_by_xpath('//*[@id="ctl00_PlaceHolderMain_ctl35_ctl00_SelectResult"]/option'):
            if option.text != 'Channel':
                option.select() # select() in earlier versions of webdriver

driver.find_element_by_id('ctl00_PlaceHolderMain_ctl35_ctl00_RemoveButton').click()

parent_h = driver.current_window_handle

#click that activates the popup.
checkIn = driver.find_element_by_id('qaCheckin_anchor').click()

# click on the link that opens a new window
handles = driver.window_handles # before the pop-up window closes
driver.remove(parent_h)
driver.switch_to_window(handles.pop())
driver.implicitly_wait(10) # seconds
driver.find_element_by_xpath('/html/body/form/div[3]/table/tbody/tr[4]/td/table/tbody/tr[3]/td[2]/input').click()
driver.find_element_by_name('btnClose2').click()
driver.close();
# do stuff in the popup
# popup window closes
driver.switch_to_window(parent_h)
# and you're back

driver.switch_to_default_content()
like image 492
import.zee Avatar asked Sep 30 '15 05:09

import.zee


1 Answers

in terms of browser, pop up is not a window, it is an alert. so, you should use following:

driver.switch_to_alert()
like image 122
Mahsum Akbas Avatar answered Oct 02 '22 08:10

Mahsum Akbas