[Selenium]-Seiten-Popup-Warnvorgang

Verarbeitung des Selenium-Seiten-Meldungsfelds 2

  • Warnung: Warnmeldungsfeld
  • bestätigen: Bestätigungsmeldungsfeld
  • prompt: Dialogfeld mit der Aufforderungsnachricht

Es gibt auch ein Seiten-Popup-Fenster, ähnlich der Baidu-Anmeldung, das hier direkt gefunden und ignoriert werden kann.

Die Methode zur Betriebswarnung

# 获取当前页面上的警告框
alert = switch_to.alert()

alert.text  # 返回文本信息
alert.accept()   # 确定
alert.dismiss()  # 取消
alert.send_keys("hello") # 输入文本

1. Alarm

alert()Methode zum Anzeigen eines Warnfelds mit einer angegebenen Nachricht und einer OK-Schaltfläche.

Beispiel

""" 
1. 切换到 iframe 内,点击按钮,弹出弹窗
2. 弹窗内点击确定或取消
3. 退出 alert,返回初始页面
"""
driver.get("https://www.runoob.com/try/try.php?filename=tryjs_alert")
driver.switch_to.frame("iframeResult")
driver.find_element(By.XPATH, '//*[@value="显示警告框"]').click()

# 切换到 alert 弹框内
alert = driver.switch_to.alert
alert.accept()  # 点击确定

# 退出弹框界面
driver.switch_to.default_content()
assert driver.find_element(By.ID, "submitBTN").text == "点击运行 》"

2. Bestätigen

confirm()Methode zum Anzeigen eines Dialogfelds mit der angegebenen Meldung sowie den Schaltflächen zum Bestätigen und Abbrechen.

Diese Methode gibt „true“ zurück, wenn der Besucher auf „OK“ klickt, andernfalls gibt sie „false“ zurück.

Abhängig von der angeklickten Schaltfläche ist die Seitendarstellung unterschiedlich.

""" 
1. 切换到 iframe 内,点击按钮,弹出弹窗
2. 弹窗内分别点击 确定/取消
3. 验证页面展示文本为:你按下了"确定/取消"按钮!
"""
driver.get("https://www.runoob.com/try/try.php?filename=tryjs_confirm")
driver.switch_to.frame("iframeResult")

# 切换到 alert 弹框内,点击「确定」,断言文案
driver.find_element(By.XPATH, "//body/button").click()  # 点我
alert = driver.switch_to.alert
alert.accept()  # 点击确定
assert driver.find_element(By.ID, "demo").text == '你按下了"确定"按钮!'

# 切换到 alert 弹框内,点击「取消」,断言文案
driver.find_element(By.XPATH, "//body/button").click()  # 点我
alert = driver.switch_to.alert
alert.dismiss()  # 点击取消
assert driver.find_element(By.ID, "demo").text == '你按下了"取消"按钮!'

3. Aufforderung

Mit der Methode prompt() wird ein Dialogfeld angezeigt, das den Benutzer zur Eingabe auffordert.

Diese Methode gibt die vom Benutzer eingegebene Zeichenfolge zurück.

Unterstützen Sie Benutzer bei der Eingabe von Text in das Popup-Feld zur späteren Verarbeitung.

"""
1. 切换到 iframe 内,点击按钮,弹出弹窗
2. 弹窗内点击取消,验证获取文本为空,文本展示元素不存在
3. 弹窗内输入文本点击确定,验证文本展示与输入一致
"""
driver.get("https://www.runoob.com/try/try.php?filename=tryjs_prompt")

# 1. 切换到 iframe 内,点击按钮,弹出弹窗
self.driver.switch_to.frame("iframeResult")
self.driver.find_element(By.XPATH, "//body/button").click()

# 2. 弹窗内点击取消,验证获取文本为空,文本展示元素不存在
alert = self.driver.switch_to.alert
alert.dismiss()
assert self.driver.find_element(By.ID, "demo").is_selected() is False

# 3. 弹窗内输入文本点击确定,验证文本展示与输入一致
self.driver.find_element(By.XPATH, "//body/button").click()
alert = self.driver.switch_to.alert
assert alert.text == "请输入你的名字"
alert.send_keys("father")
alert.accept()
assert "father" in self.driver.find_element(By.ID, "demo").text

Guess you like

Origin blog.csdn.net/lan_yangbi/article/details/127968344