2017-07-26 4 views
1

Mit Python 3 und Selen>Chromedriver.Python und Selen - Deaktivieren Sie alle Warnungen

Ich benutze ein Python-Skript, um Sachen von verschiedenen Websites zu scraphen.

Ich muss viele verschiedene Websites öffnen und schließen.

Problem:

Mein Programm stürzt ab, wenn ein Alarm ausgelöst wird.

selenium.common.exceptions.UnexpectedAlertPresentException: Alarmtext: Keine Nachricht: unerwarteter Alarm offen

Was ist ich versucht, die Situation zu beheben?

Wenn ich driver.get tun(), ich sofort ausgeführt:

driver.execute_script("window.alert = null;") 
driver.execute_script("Window.prototype.alert = null;") 

Kurz vor driver.close tun(), ich laufe:

driver.execute_script("window.onbeforeunload = null;") 

Gleich nach tun driver.close(), tue ich:

from selenium.common.exceptions import NoAlertPresentException 

... 

driver.close() 
# any alert asking me if I really want to close? 
try: 
    driver.switch_to.alert.accept() 
except NoAlertPresentException: 
    pass 

Was erreiche ich?

Nichts, hält das Programm abstürzt:

enter image description here

Frage:

Wie kann ich das Ganze eingerichtet, jeden Alarm zu deaktivieren.

Wenn nicht möglich, wie kann ich sie alle akzeptieren oder zumindest tun, damit das Programm weiter fließt?

+0

Mögliche Duplikat [Deaktivieren Popup und Alarmfenster Selen Web-Treiber Firefox Profil] erwähnt genommen stackoverflow.com/questions/20974729/selenium-web-driver-firefox-profile-disable-popup-and-alert-windows) –

+0

Ich sehe kein Popup dort, wenn ich auf die Seite zugreife. Können Sie bitte übersetzen, was das Popup ist? Danke – DebanjanB

+0

@DebanjanB Es ist das typische "Bist du sicher, dass du diese Seite verlassen willst?" Pop-up. Und es erscheint nur manchmal. –

Antwort

-5

Dies wurde oft gefragt, haben Sie irgendwelche Untersuchungen vor dem Stellen der Frage gemacht? //: (https -

Diese sollten Sie zusammen helfen, wird es von der Website unter

public static void main(String[] args) { 
    WebDriver driver = new FirefoxDriver(); 
    driver.get("http://toolsqa.wpengine.com/handling-alerts-using-selenium-webdriver/"); 
    driver.manage().window().maximize(); 
    // This step will result in an alert on screen 
    driver.findElement(By.xpath("//*[@id='content']/p[4]/button")).click(); 

    Alert simpleAlert = driver.switchTo().alert(); 
    String alertText = simpleAlert.getText(); 
    System.out.println("Alert text is " + alertText); 
    simpleAlert.accept(); 
} 

Source

+2

Möchten Sie es in Python "übersetzen"? –

+0

Ja, ich habe meine Nachforschungen gemacht. Du hast nichts bereitgestellt, was ich nicht schon versucht habe, wie du in meiner Frage nachlesen kannst. –

+0

@ ÁlvaroN.Franz Ich stimme nicht zu, Sie haben nicht versucht, ChromeOptions einzustellen. Halten Sie die Abstimmung aufrecht. –

Verwandte Themen