Python automatisierte Formularübermittlung

巴扎黑
Freigeben: 2017-06-23 15:11:03
Original
2644 Leute haben es durchsucht

Heute werden wir die automatische Übermittlung eines Formulars nutzen, um die Verwendung von Selen weiter zu erlernen

Übungsziele

 0 ) Verwenden Sie Selenium, um Firefox zu starten und die angegebene Seite zu laden (Sie können meinen Artikel für diesen Teil ansehen)

 1) Suche nach Seitenelementen (mehrere Suchmethoden: find_element_*)

 2) Füllen von Inhalten (send_keys))

 3) Wechseln zwischen Iframe und übergeordneter Seite (switch_to_frame dient zum Wechseln zu Iframe, switch_to_default_content dient zum Wechseln zur Hauptseite)

 4) Browser-Interaktion Verarbeitung: window.alert, window.confirm, window .prompt

 Um mit den oben genannten drei Browsern zu interagieren, müssen Sie switch_to_alert verwenden. Es gibt mehrere Verwendungen, die beachtet werden müssen:

 a ) Accept(): Senden Sie einen Bestätigungsbefehl, der dem Klicken auf die Schaltfläche „OK“ entspricht

b) dismiss(): Brechen Sie den Vorgang ab, was dem Klicken auf die Schaltfläche „Abbrechen“ oder dem Klicken auf „Schließen“ entspricht. in der oberen rechten Ecke

c) send_keys: der Inhalt, der in das Eingabeaufforderungsfeld eingegeben werden muss

Vorbereitung

HTML-Seite (Registrierungsseite mit darin eingebettetem Registrierungsformular; der Grund für dieses Beispiel ist die Einführung in die Verwendung von switch_to_frame zum Üben von Selen)

1) Registrierungsseite (Pfad D :RegisterDEMOindex.htm)

<!DOCTYPE>
<html>
<head>
	<title>用户注册</title>
	<meta charset="utf-8" />
</head>
<body>
	<h3>测试Python selenium自动提交表单</h3>
	<iframe id="register_iframe" width="320" height="200" border="0" src="register.htm" />
</body>
</html>
Nach dem Login kopieren

2) Registrierungsformular (Pfad D:RegisterDEMOregister) .htm)

<!DOCTYPE>
<html>
<head>
	<title>这是内嵌表单</title>
	<meta charset="utf-8" />
	<style type="text/css">
		input[type=&#39;text&#39;]{border:1px solid #abc; font-size:14px; padding:5px; width:200px;}
		input[type=&#39;password&#39;]{border:1px solid #abc; font-size:14px; padding:5px; width:200px;}
		input[type=&#39;submit&#39;]{border:1px solid #abc; font-size:14px; padding:5px 10px; width:100px; cursor:pointer; margin-top:20px;}
		input[type=&#39;submit&#39;]:hover{background-color:#aaaaff;}
	</style>
</head>
<body>
	<form action="/register/regaction" method="POST">
		<table>
			<tr>
				<td>用户名:</td>
				<td><input id="txt_account" type="text" value="" placeholder="用户名" /></td>
			</tr>
			<tr>
				<td>密码:</td>
				<td><input id="txt_password" type="password" value="" placeholder="密码" /></td>
			</tr>
			<tr>
				<td>电子邮箱:</td>
				<td><input id="txt_email" type="text" value="" placeholder="电子邮箱" /></td>
			</tr>
			<tr>
				<td> </td>
				<td><input id="btn_register" type="submit" value="提交注册" onclick="return confirm(&#39;是否确认提交注册&#39;);" /></td>
			</tr>
		</table>
	</form>
</body>
</html>
Nach dem Login kopieren

Laufschritte

Wir führen es Schritt für Schritt durch Python IDLE aus, was hilft, Schritt für Schritt zu verstehen, dass die Überraschungen endlos sind

 1) Stellen Sie das Selenium-Modul vor

from selenium import webdriver
Nach dem Login kopieren

2) Starten Sie Firefox und laden Sie die Registrierungsseite

bs = webdriver.Firefox()
bs.get(&#39;file:///D:/RegisterDEMO/index.htm&#39;)
Nach dem Login kopieren

3) Suchen Sie das Eingabefeld (Benutzername, Passwort, E-Mail) und die Schaltfläche (Registrierung absenden) und füllen Sie sie aus den angegebenen Inhalt

# 由于表单内容是嵌在iframe里的,所以需要查找指向至iframe
# 如果又想跳出iframe,回到父页面,可以使用 bs.switch_to_default_content()
bs.switch_to_frame(&#39;register-iframe&#39;)

# 由于所有的元素都命名了id,可以使用find_element_by_id,还有很多的其它find_element_*大家可以练习
# 查找用户名框,并填充“hertz.liu"
account = bs.find_element_by_id(&#39;txt_account&#39;)
account.send_keys(&#39;hertz.liu&#39;)

# 查找密码框,并填充"pwd123"
pwd = bs.find_element_by_id(&#39;txt_password&#39;)
pwd.send_keys(&#39;pwd123&#39;)

# 查找电子邮箱框,并填充”hertz.liu@mail.com"
email = bs.find_element_by_id(&#39;txt_email&#39;)
email.send_keys(&#39;hertz.liu@mail.com&#39;)

# 查找提交按钮,并模拟点击提交
btn_reg = bs.find_element_by_id(&#39;btn_register&#39;)
btn_reg.click()
Nach dem Login kopieren

4) Das Ausfüllen und Absenden des Formulars verlief reibungslos. Da es sich bei allgemeinen Formularen um Datenoperationen handelt, richten Entwickler einige sekundäre Bestätigungen ein, um Fehloperationen zu verhindern. Hier wird eine einfache Bestätigung für die sekundäre Bestätigung verwendet. Hier erfahren Sie, wie Selenium das Bestätigungsfeld identifiziert und auf die Schaltfläche „OK“ klickt

# 将查找对象转移至confirm
confirm = bs.switch_to_alert()

# 点击确定按钮
confirm.accept()
# 如果要取消,使用confirm.dismiss()
# 如果是prompt,则可以使用send_keys()先填充内容,再调用accept()或dismiss()
Nach dem Login kopieren

5) Browser-Gerät schließen

bs.close()
Nach dem Login kopieren

Das obige ist der detaillierte Inhalt vonPython automatisierte Formularübermittlung. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage