网站建设模板研究,免费购物网站建设,在哪个网站做视频赚钱,互联网网站设计web应用中#xff0c;经常会遇到弹框。不处理弹框#xff0c;页面其他元素都是不能操作的。js弹框有3种#xff1a;alert警告框、confirm确认窗口、prompt信息输入窗口。webdriver提供了处理这3种弹框的方法。首先通过switch_to定位到弹框#xff0c;然后针对弹框的不同经常会遇到弹框。不处理弹框页面其他元素都是不能操作的。js弹框有3种alert警告框、confirm确认窗口、prompt信息输入窗口。 webdriver提供了处理这3种弹框的方法。首先通过switch_to定位到弹框然后针对弹框的不同可以使用accept/dismiss/text/send_keys进行处理。 用法演示 1alert警告框 一般用于提示信息或者警告信息的展示。以百度搜索首页html演示其用法。from selenium import webdriverfrom selenium.webdriver.common.action_chains import ActionChainsfrom selenium.common.exceptions import NoAlertPresentException#封装判断弹框是否出现方法def alert_is_present(): try: driver.switch_to.alert return True except NoAlertPresentException: return Falsedriver webdriver.Chrome()driver.get(https://www.baidu.com/)driver.implicitly_wait(10)driver.maximize_window()#鼠标在设置按钮悬停set_but driver.find_element_by_xpath(//*[ids-usersetting-top])ActionChains(driver).move_to_element(set_but).perform()#点击搜索设置driver.find_element_by_link_text(搜索设置).click()#点击保存设置driver.find_element_by_link_text(保存设置).click()#切换到警告框并接受if alert_is_present() True: driver.switch_to.alert.accept()driver.quit() 2confirm确认窗口 这个窗口包含一个【确定】和【取消】按钮点击按钮弹窗会返回一个布尔值。确认返回true,取消返回false,由此可以判断用户的操作。 以菜鸟工具页面展示其用法。from selenium import webdriverfrom selenium.common.exceptions import NoAlertPresentExceptiondriver webdriver.Firefox()driver.implicitly_wait(10)driver.get(https://c.runoob.com/codedemo/5431)driver.maximize_window()#封装判断弹框是否出现方法def alert_is_present(): try: driver.switch_to.alert return True except NoAlertPresentException: return False#点击【点我】按钮driver.switch_to.frame(iframeResult)driver.find_element_by_xpath(/html/body/button).click()#点击【取消】按钮if alert_is_present() True: driver.switch_to.alert.dismiss() print(dismiss)driver.quit() 3prompt信息输入窗口 用户可以在弹框输入字符串点击确认后页面会返回输入框内的字符串。 以菜鸟工具页面展示其用法。from selenium import webdriverfrom selenium.common.exceptions import NoAlertPresentExceptiondriver webdriver.Firefox()driver.implicitly_wait(10)driver.get(https://www.runoob.com/try/try.php?filenametryjs_prompt)driver.maximize_window()#封装判断弹框是否出现方法def alert_is_present(): try: driver.switch_to.alert return True except NoAlertPresentException: return False#点击【点我】按钮driver.switch_to.frame(iframeResult)driver.find_element_by_xpath(/html/body/button).click()#点击【取消】按钮if alert_is_present() True: driver.switch_to.alert.send_keys(小蛋黄) driver.switch_to.alert.accept() text driver.find_element_by_xpath(//*[iddemo]).text print(text)driver.quit()