1.webDriver提供了一个api用于处理JavaScript提供的三种类 型的原生弹窗消息弹窗无法通过网页元素定位一.Alerts警告框1.显示一条自定义消息以及一个用于关闭该警告的按钮在大多数浏览器中标记为确定”(OK)2.在大多数浏览器中也可以通过按关闭”(close)按钮将其关闭但这始终与“确定”按钮具有相同的作用3.WebDriver可以从弹窗获取文本并接受或关闭这些警告importtimefromseleniumimportwebdriverfromselenium.webdriver.support.uiimportWebDriverWaitfromselenium.webdriver.supportimportexpected_conditionsasEC withwebdriver.Chrome()asdriver: driver.get(rhttps://www.w3school.com.cn/tiy/t.asp?fhdom_alert)driver.switch_to.frame(iframeResult)buttonWebDriverWait(driver,timeout3).until(EC.visibility_of_element_located((xpath,//input)))button.click()time.sleep(5)# 等待alert弹出alertWebDriverWait(driver,timeout3).until(EC.alert_is_present())# 打印弹出框所有属性print(dir(alert))# 获取弹出框文本textalert.textprint(text)time.sleep(2)# 确认弹窗alert.accept()time.sleep(3)二.confirm确认框1.确认框类似于警告框,不同之处在于用户还可以选择取消importtimefromseleniumimportwebdriverfromselenium.webdriver.support.uiimportWebDriverWaitfromselenium.webdriver.supportimportexpected_conditionsasEC withwebdriver.Chrome()asdriver:driver.get(https://www.w3school.com.cn/tiy/t.asp?fhdom_confirm)driver.switch_to.frame(iframeResult)buttonWebDriverWait(driver,timeout3).until(EC.presence_of_element_located((xpath,//input[typebutton])))button.click()# 等待alert弹出WebDriverWait(driver,timeout3).until(EC.alert_is_present())# 获取alert不常用一般在等待alert弹出时获取alertdriver.switch_to.alert # 获取弹出框文本textalert.textprint(text)time.sleep(3)# 取消# 点击取消后当前的alert对象就会被销毁alert.dismiss()time.sleep(3)# 要拿到新打开的alert需要再获取一遍new_alertWebDriverWait(driver,timeout3).until(EC.alert_is_present())print(new_alert.text)time.sleep(1)# 确认new_alert.accept()三.prompt提示框1.提示框与确认框相似不同之处在于它们还包括文本输入与处理表单元素类似2.可以使用WebDriver的sendKeys来填写响应这将完全替换占位符文本按下取消按钮将不会提交任何文本查看样例提示框importtimefromseleniumimportwebdriverfromselenium.webdriver.support.uiimportWebDriverWaitfromselenium.webdriver.supportimportexpected_conditionsasEC withwebdriver.Chrome()asdriver:driver.get(https://www.w3school.com.cn/tiy/t.asp?fhdom_prompt)driver.switch_to.frame(iframeResult) WebDriverWait(driver,timeout3).until(EC.presence_of_element_located((xpath,//input[typebutton]))).click()# 获取alert弹窗alertWebDriverWait(driver,timeout3).until(EC.alert_is_present())# 输入信息alert.send_keys(test)time.sleep(3)# 确认alert.accept()time.sleep(3)
第五:警告框、提示框和确认框操作
1.webDriver提供了一个api用于处理JavaScript提供的三种类 型的原生弹窗消息弹窗无法通过网页元素定位一.Alerts警告框1.显示一条自定义消息以及一个用于关闭该警告的按钮在大多数浏览器中标记为确定”(OK)2.在大多数浏览器中也可以通过按关闭”(close)按钮将其关闭但这始终与“确定”按钮具有相同的作用3.WebDriver可以从弹窗获取文本并接受或关闭这些警告importtimefromseleniumimportwebdriverfromselenium.webdriver.support.uiimportWebDriverWaitfromselenium.webdriver.supportimportexpected_conditionsasEC withwebdriver.Chrome()asdriver: driver.get(rhttps://www.w3school.com.cn/tiy/t.asp?fhdom_alert)driver.switch_to.frame(iframeResult)buttonWebDriverWait(driver,timeout3).until(EC.visibility_of_element_located((xpath,//input)))button.click()time.sleep(5)# 等待alert弹出alertWebDriverWait(driver,timeout3).until(EC.alert_is_present())# 打印弹出框所有属性print(dir(alert))# 获取弹出框文本textalert.textprint(text)time.sleep(2)# 确认弹窗alert.accept()time.sleep(3)二.confirm确认框1.确认框类似于警告框,不同之处在于用户还可以选择取消importtimefromseleniumimportwebdriverfromselenium.webdriver.support.uiimportWebDriverWaitfromselenium.webdriver.supportimportexpected_conditionsasEC withwebdriver.Chrome()asdriver:driver.get(https://www.w3school.com.cn/tiy/t.asp?fhdom_confirm)driver.switch_to.frame(iframeResult)buttonWebDriverWait(driver,timeout3).until(EC.presence_of_element_located((xpath,//input[typebutton])))button.click()# 等待alert弹出WebDriverWait(driver,timeout3).until(EC.alert_is_present())# 获取alert不常用一般在等待alert弹出时获取alertdriver.switch_to.alert # 获取弹出框文本textalert.textprint(text)time.sleep(3)# 取消# 点击取消后当前的alert对象就会被销毁alert.dismiss()time.sleep(3)# 要拿到新打开的alert需要再获取一遍new_alertWebDriverWait(driver,timeout3).until(EC.alert_is_present())print(new_alert.text)time.sleep(1)# 确认new_alert.accept()三.prompt提示框1.提示框与确认框相似不同之处在于它们还包括文本输入与处理表单元素类似2.可以使用WebDriver的sendKeys来填写响应这将完全替换占位符文本按下取消按钮将不会提交任何文本查看样例提示框importtimefromseleniumimportwebdriverfromselenium.webdriver.support.uiimportWebDriverWaitfromselenium.webdriver.supportimportexpected_conditionsasEC withwebdriver.Chrome()asdriver:driver.get(https://www.w3school.com.cn/tiy/t.asp?fhdom_prompt)driver.switch_to.frame(iframeResult) WebDriverWait(driver,timeout3).until(EC.presence_of_element_located((xpath,//input[typebutton]))).click()# 获取alert弹窗alertWebDriverWait(driver,timeout3).until(EC.alert_is_present())# 输入信息alert.send_keys(test)time.sleep(3)# 确认alert.accept()time.sleep(3)