2016-12-07 3 views
0

Haben eine harte Zeit versucht, ein Element zu finden ein Pop-up-Fenster .Tried Wechselrahmen und Fenster vergeblich. Element nicht im ursprünglichen Quellcode gefunden. len (driver.window_handles) auch = 1 nach dem Popup. Hier ist, was ich versucht habe, wenn das Popup aktiv ist.Python Selen lokalisieren Ajax Pop-up-Fenster-Element

windows = driver.window_handles 
num_of_windows = len(windows) 
print (num_of_windows) 
driver.switch_to_window(driver.window_handles[1]) 
wait.until(lambda driver: driver.find_element_by_css_selector('.suv.suv-deca.suv-open')) 
driver.find_element_by_css_selector('.suv.suv-deca.suv-open').click() 

Hier ist der HTML-Code, in Firebug zeigt

<button class="suv suv-deca suv-open" type="button">Click Here to Continue</button> 
+0

Welche Art von Pop-up ist es? Wie willst du damit umgehen? Wenn es sich um ein natives Pop-up-Programm handelt, zeigen Sie den 'HTML'-Code an – Andersson

+0

Der Code ist in HTML, der versucht, driver.find_element_by_css_selector ('. Suv.suv-deca.suv-open') nach der Überprüfung mit Firebug zu erhalten. –

Antwort

0

Wenn das Ergebnis von len(driver.window_handles)1 ist, wie Sie erwähnt haben, dann driver.switch_to_window(driver.window_handles[1]) sollte offensichtlich http.client.CannotSendRequest Ausnahme auslösen, da es nur ein Fenster vorhanden ist . Versuchen Sie, nur

wait.until(lambda driver: driver.find_element_by_css_selector('.suv.suv-deca.suv-open')) 
driver.find_element_by_css_selector('.suv.suv-deca.suv-open').click() 

ohne Schaltfenster, Warnungen, etc

+0

Danke, aber das ist, wo ich angefangen habe, bevor ich bemerkte, dass ich es mit einem Pop-Up zu tun hatte. –

+0

Ihre Schaltfläche könnte in iframe eingebettet sein. Überprüfen Sie, ob es einen 'iframe'-Vorgänger gibt – Andersson

+0

Ich habe den Quellcode überprüft, es gibt einen Iframe auf der Seite, aber die Schaltfläche ist nicht darin eingebettet. –