消息框操作⭐
在wb浏览的时候经常会弹出消息框,用于给客户提示:
- JavaScript根据功能把它分为三类:Alert(提示框)、Confirm(确认框)、Prompt(输入框)(不常用)
- Selenium中把它们统称为Alert
消息框的特点:
- 特点1:
- 因为它不属于网页元素,所以在消息框上右击之后,没有“检查"菜单,无法查看其网页源代码。
- 特点2:
- 一般都是模态消息框,不关闭它,后面的网页是无法操作的。
- 特点1:
注意:不是所有的弹出框都叫Alert,在使用 Alert前,先要识别出到底是不是Alert。
Alert类:是Selenium中消息框处理的专用类。
初始化Alerta类对象:
- 切换到消息框,得到Alert对象实例
对象=driver.switch_to.alert
- 切换到消息框,得到Alert对象实例
AIet类对象属性:记录消息框里的信息。
变量=对象.text
→str类型消息框里的信息。
Alert类对象方法:用于操作消息框。
对象.accept()
→点击确认/确定按钮。对象.dismiss()
→点击取消按钮。对象.send_keys(数据)
→向prompt类型消息框里输入数据。(不常用)
driver.find_element(By.XPATH,//img [contains(@src,"bnt_cat.gif")]').click()
#输出消息框内容
mes1=driver.switch_to.alert
tex=mes1.text
print(tex)
mes1.dismiss()
driver.find_element(By.XPATH,'//img[contains(@src,"bnt_colles.gif")]').click()
mes2=driver.switch_to.alert
tex2=mes2.text
print(tex2)
mes2.accept()
driver.find_element(By.XPATH,'//input[@value="Click For Prompt"]').click()
mes1=driver.switch_to.alert
mes1.send_keys("hello")
mes1.accept()
tex1=driver.find_element(By.NAME,"t1").get_attribute("value")
print(tex1)
driver.find_element(By.XPATH,'//input[@value="Click For Prompt"]').click()
mes2=driver.switch_to.alert
mes2.send_keys("hello")
mes2.dismiss()
tex2=driver.find_element(By.NAME,"t1").get_attribute("value")
print(tex2)
小结
指令
对象=driver.switch_to.alert
变量=对象.text
→str类型消息框里的信息。对象.accept()
→点击确认/确定按钮。对象.dismiss()
→点击取消按钮。对象.send_keys(数据)
→向prompt类型消息框里输入数据。(不常用)
from selenium import webdriver
from selenium.webdriver.common.by import By
from time import sleep
driver = webdriver.Firefox()
driver.implicitly_wait(5)
driver.get('http://localhost:8080/upload/index.php')
driver.find_element(By.NAME,'imageField').click()
sleep(3)
#输出消息框内容
mes=driver.switch_to.alert
tex=mes.text
print(tex)
mes.accept()
driver.find_element(By.ID,'keyword').send_keys('806')
driver.find_element(By.NAME,'imageField').click()
sleep(3)
driver.find_element(By.XPATH,'//a[@href="goods.php?id=24"]').click()
sleep(3)
driver.find_element(By.XPATH,'//a[@href="javascript:addToCart(24)"]').click()
sleep(6)
driver.find_element(By.LINK_TEXT,'删除').click()
mes=driver.switch_to.alert
tex=mes.text
print(tex)
mes.dismiss()
driver.quit()
上次更新: 2025/5/2 14:40:28