element js 包含字符_selenium3.x(10)js弹框处理
生活随笔
收集整理的這篇文章主要介紹了
element js 包含字符_selenium3.x(10)js弹框处理
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
????????web應用中,經常會遇到彈框。不處理彈框,頁面其他元素都是不能操作的。js彈框有3種:alert警告框、confirm確認窗口、prompt信息輸入窗口。
??????? webdriver提供了處理這3種彈框的方法。首先通過switch_to定位到彈框,然后針對彈框的不同,可以使用
accept/dismiss/text/send_keys進行處理。
????????用法演示
????????1,alert警告框
????????一般用于提示信息或者警告信息的展示。以百度搜索首頁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('//*[@id="s-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()????????2,confirm確認窗口
? ? ? ? 這個窗口包含一個【確定】和【取消】按鈕,點擊按鈕,彈窗會返回一個布爾值。確認返回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()????????3,prompt信息輸入窗口
????????用戶可以在彈框輸入字符串,點擊確認后,頁面會返回輸入框內的字符串。
????????以菜鳥工具頁面展示其用法。
from selenium import webdriverfrom selenium.common.exceptions import NoAlertPresentExceptiondriver = webdriver.Firefox()driver.implicitly_wait(10)driver.get('https://www.runoob.com/try/try.php?filename=tryjs_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('//*[@id="demo"]').text print(text)driver.quit()總結
以上是生活随笔為你收集整理的element js 包含字符_selenium3.x(10)js弹框处理的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 修改燕秀快捷键(燕秀快捷键如何设置自己想
- 下一篇: mininet编程实现交换机规则的插入、