2016-05-02 21 views
1

Schließen Pop-up-Fenster, das direkt nach http://www.cargo.lt/ lädt erscheint nicht geschlossen werden kann. Hier ist, was ich habe:Wie Popup-Fenster in Selenium zu schließen

from selenium import webdriver 
import time 

driver = webdriver.Firefox() 
driver.get('http://www.cargo.lt/asp/index.asp?') 
time.sleep(10) 
driver.find_element_by_xpath('/html/body/div[36]/div/a').click() 

Ich bin nicht sehr vertraut mit, wie benutzerdefinierte schreiben XPath/css Pfad und jetzt nur noch angeklickt Element prüfen und kopiert XPath. Was mache ich falsch?

EDIT: Was für ein dummer Fehler. Ich habe nicht bemerkt, dass Selen nicht klicken kann, wenn das Element außerhalb des Bildschirms ist. Habe einfach driver.maximize_window() hinzugefügt und alle meine Probleme sind weg. Vielen Dank für Ihre Antworten. Leider kann ich noch nicht stimmen, weil ich nicht genug Punkte haben Sie ...

Antwort

0

hallo Pop-up/alert bitte

driver.switch_to_alert() 

dann verwenden

driver.find_element_by_xpath('/html/body/div[36]/div/a').click() 

// verwenden, um zu schließen wenn u eingefügt Form firebug kopiert haben, dann wird es richtig sein, ich denke,

oder wenn ur XPath nicht korrekt ist dann

01 verwenden
0

Sie können die vordefinierten Befehle in python -Selenium verwenden, um zur Warnmeldung zu wechseln.

from selenium import webdriver 

driver = webdriver.Firefox() 
driver.get('http://www.cargo.lt/asp/index.asp?') 
alrt = driver.switch_to_alert() 
alrt.accept() 

Ich hoffe, es hilft.

1

Ich habe versucht, Ihren Code ist es gut funktionieren Ich weiß nicht, was Sie Problem aber dies versuchen: driver.implicitly_wait(10) insted:

time.sleep(10) 
+0

Implizite wartet sehr langsam und sollte unter allen Umständen vermieden werden. Wenn Sie eine implizite Wartezeit hinzufügen, sagen Sie im Grunde: "Warten Sie X Sekunden vor dem Ausführen jeder Aktion". Wenn Sie eine zu ladende Seite benötigen und diese nicht schnell genug ist, sollten Sie nach dem Laden der Seite ein Element auf dieser Seite finden. Sie können WebDriverWait verwenden, um zu warten, bis dieses Element vorhanden ist und die Seite geladen ist. Wenn nicht, benutze time.sleep(), wenn es ein einmaliges Warten ist. – RemcoW

Verwandte Themen