Python+Selenium筆記(九):操作警告和彈出框

來源:互聯網
上載者:User

標籤:content   selector   logs   web   miss   簡單   nbsp   驅動   python   

#之前發的 driver.switch_to_alert() 這句雖然可以運行通過,但是會彈出警告資訊(這種寫法3.x不建議使用)

 改成 driver.switch_to.alert就不會了。

(一) 前言

開發人員使用JavaScript 警告或者模態對話方塊來提示校正錯誤資訊、警示資訊、執行操作後的返回資訊,甚至用來接收輸入值等。

(二) Alert

Selenium WebDriver 通過Alert 類來操控 JavaScript 警告。

(三) Alert功能及方法

功能/屬性

簡單說明

text

擷取快顯視窗的提示資訊(常值內容)

alert.text

 

方法

簡單說明

accept()

接受JS警告資訊,單擊確定

dismiss()

接受JS警告資訊,單擊取消

send_keys(value)

類比給元素輸入資訊

 

(四) Webdriver API補充說明(基於筆記7)

方法

簡單說明

switch_to_active_element()

返回當前焦點的對象

switch_to_alert()

把焦點切換至當前頁面彈出的警告

switch_to_default_content()

切換焦點至預設架構內

switch_to_frame()

通過索引、名稱和網頁元素,將焦點切換至指定的架構

switch_to_window()

切換焦點到指定的視窗

 

(五) 樣本(檢查部落格園首頁點擊退出是否彈出提示)

 1 import unittest 2 from  selenium import webdriver 3 class SignOut(unittest.TestCase): 4  5     @classmethod 6     def setUpClass(cls): 7         #擷取自訂的 profile路徑 8         cls.profile = webdriver.FirefoxProfile 9             (r‘C:\Users\quanhua\AppData\Roaming\Mozilla\Firefox\Profiles\tnwjkr4m.selenium‘)10         #建立Firefox瀏覽器驅動執行個體,啟動時載入自訂的profile11         cls.driver = webdriver.Firefox(cls.profile)12         cls.driver.implicitly_wait(20)13         cls.driver.maximize_window()14         cls.driver.get(‘https://www.cnblogs.com/‘)15     def test_sign_out(self):16         driver = self.driver17         #定位部落格園首頁的 退出18         span_userinfo = driver.find_element_by_css_selector(‘#span_userinfo‘)19         sign_out_btn = span_userinfo.find_element_by_link_text(‘退出‘)20         sign_out_btn.click()21         #將焦點切換到當前頁面彈出的警告,並擷取彈出框的text22         alert = driver.switch_to_alert()23         alert_text = alert.text24         #檢查點擊退出時,是否彈出提示資訊  確認退出嗎?25         self.assertTrue(alert_text == ‘確認退出嗎?‘)26         alert.accept() #點擊確定27 28     @classmethod29     def tearDownClass(cls):30         cls.driver.quit()

 

(六) 使用範例程式碼需要配置Firefox的profile(如)

或者百度  Python selenium profile

配置好後,選擇自訂的profile開啟Firefox,登入一次部落格園(勾選自動登入),範例程式碼就可以運行了。

 

 

Python+Selenium筆記(九):操作警告和彈出框

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.