Gewusst wie: behandeln von Warnungen mit Python?

Ich wuold wie zu handhaben Meldungen mit Python. Was ich wuold wie zu tun ist:

  • Eine url öffnen
  • "Formular senden", oder klicken Sie auf einige links
  • Überprüfen wenn eine Warnung erscheint in der neuen Seite

Machte ich dies mit Javascript mit PhantomJS, aber ich würde auch mit Python.

Hier ist der javascript-code:

Datei test.js:

var webPage = require('webpage');
var page = webPage.create();

var url = 'http://localhost:8001/index.html'

page.onConsoleMessage = function (msg) {
    console.log(msg);
}    
page.open(url, function (status) {                
    page.evaluate(function () {
        document.getElementById('myButton').click()       
    });        
    page.onConsoleMessage = function (msg) {
        console.log(msg);
    }    
    page.onAlert = function (msg) {
        console.log('ALERT: ' + msg);
    };    
    setTimeout(function () {
        page.evaluate(function () {
            console.log(document.documentElement.innerHTML)
        });
        phantom.exit();
    }, 1000);
});

Datei index.html

<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
    <title></title>
    <meta charset="utf-8" />
</head>
<body>
    <form>
        <input id="username" name="username" />
        <button id="myButton" type="button" value="Page2">Go to Page2</button>
    </form>
</body>
</html>

<script>
    document.getElementById("myButton").onclick = function () {
        location.href = "page2.html";
    };
</script>

Datei page2.html

<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
    <title></title>
    <meta charset="utf-8" />
</head>
<body onload="alert('hello')">
</body>
</html>

Dieser Werke; das erkennt die Warnung page2.html.
Jetzt habe ich dieses python-script:

test.py

import requests
from test import BasicTest
from selenium import webdriver
from bs4 import BeautifulSoup   

url = 'http://localhost:8001/index.html'    

def main():
    #browser = webdriver.Firefox()
    browser = webdriver.PhantomJS()
    browser.get(url)
    html_source = browser.page_source
    #browser.quit()    
    soup = BeautifulSoup(html_source, "html.parser")
    soup.prettify()    
    request = requests.get('http://localhost:8001/page2.html')
    print request.text    
    #Handle Alert    
if __name__ == "__main__":
    main();

Nun, wie kann ich überprüfen, ob ein Alarm auftreten page2.html mit Python? Zuerst öffne ich die Seite index.html dann page2.html.
Ich bin am Anfang, so dass jeder die Anregungen zu schätzen wissen.

p.s.
Habe ich auch getestet webdriver.Firefox (), aber es ist extrem langsam.
Auch ich Las diese Frage : Prüfen Sie, ob eine Warnung vorhanden ist, mit Selen mit python

aber es funktioniert nicht (unten ist die gleiche Vorherige Skript plus die Lösung in der Antwort).

.....    
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from selenium.common.exceptions import TimeoutException

....

def main():
    .....
    #Handle Alert
    try:
        WebDriverWait(browser, 3).until(EC.alert_is_present(),
                                        'Timed out waiting for PA creation ' +
                                        'confirmation popup to appear.')

        alert = browser.switch_to.alert()
        alert.accept()
        print "alert accepted"
    except TimeoutException:
        print "no alert"

if __name__ == "__main__":
    main();

Bekomme ich die Fehlermeldung :

"Selen.common.Ausnahmen.WebDriverException: Meldung: Ungültige
Befehl-Methode.."

InformationsquelleAutor d3llafr33 | 2016-09-30
Schreibe einen Kommentar