Ich habe versucht, Selenium durch Python zu verwenden, um einen Benutzernamen und ein Kennwortfeld auszufüllen, um eine Twitter-Autorisierung zu erlauben. Dies sollte eine sehr einfache Aufgabe sein, aber es gibt mir immer einen Fehler. Hier ist das Feld Benutzername in HTML ich füllen wollen:Selen durch Python füllt kein Feld
<div class="row user ">
<label for="username_or_email" tabindex="-1">Username or email</label>
<input aria-required="true" autocapitalize="off" autocorrect="off" autofocus="autofocus" class="text" id="username_or_email" name="session[username_or_email]" type="text" value="">
</div>
Hier ist der HTML-Code des Passwort-Feld:
<div class="row password ">
<label for="password" tabindex="-1">Password</label>
<input aria-required="true" class="password text" id="password" name="session[password]" type="password" value="">
</div>
Hier ist mein Code:
username_field = browser.find_element_by_id("username_or_email")
password_field = browser.find_element_by_id("password")
username_field.send_keys("[email protected]")
password_field.send_keys("SuperSecretPassword")
password_field.send_keys(Keys.ENTER)
Ziemlich einfach oder? Aber die Minute, die ich den Code ausführen es einen Fehler wirft, wenn es um zu send_keys versucht zu sagen am Ende des Fehlers:
selenium.common.exceptions.WebDriverException: Message: TypeError - undefined is not a function (evaluating '_getTagName(currWindow).toLowerCase()')
Kann jemand mir erklären, was hier vor sich geht? Warum weigert es sich, die Felder zu füllen?
Ich bin mir ziemlich sicher, dass Code fehlt, welchen Browser möchten Sie verwenden? – glls
Ich benutze PhantomJS dafür. browser = webdriver.PhantomJS (ausführbare_Pfad = 'PATH TO PHANTOMJS') – OneManRiot
Ich bezweifle, dass das 'for'-Tag eine Rolle dort spielt. Https://github.com/detro/ghostdriver/issues/450 könnte hilfreich sein. – nullpointer