1. 程式人生 > >Selenium-js彈窗浮層

Selenium-js彈窗浮層

單擊 cli 字符串類型 pytho javascrip clas .cn bdr 對話

學習過js的小夥伴會發現,我們在一些實例中用到了alert()方法、prompt()方法、prompt()方法,他們都是在屏幕上彈出一個對話框,並且在上面顯示括號內的內容,使用這種方法使得頁面的交互性更精彩,實際上我們經常會在進行網頁瀏覽時簡單這種類型的對話框,在用戶與應用程序進行雙向交流時,經常要用到對話框。

javascript的三種對話框是通過調用window對象的三個方法alert(),confirm()和prompt()來獲得,可以利用這些對話框來完成js的輸入和輸出,實現與用戶能進行交互的js代碼

第一種:alert警告框

  alert()方法是這三種對話框中最容易使用的一種,她可以用來簡單而明了地將alert()括號內的文本信息顯示在對話框中,我們將它稱為警示對話框,要顯示的信息放置在括號內,該對話框上包含一個“確認”按鈕,用戶閱讀完所顯示的信息後,只需單擊該按鈕就可以關閉對話框。

技術分享

第二種:confirm確認框

confirm()方法與alert()方法的使用十分類似,不同點是在該種對話框上除了包含一個“確認”按鈕外,還有一個“取消”按鈕,這種對話框稱為確認對話框

技術分享

第三種:prompt提示框

alert()方法和confirm()方法的使用十分類似,都是僅僅顯示已有的信息,但用戶不能輸入自己的信息,但是prompt()可以做到這點,她不但可以顯示信息,而且還提供了一個文本框要求用戶使用鍵盤輸入自己的信息,同時她還包含“確認”或“取消”兩個按鈕,如果用戶“確認”按鈕,則prompt()方法返回用戶在文本框中輸入的內容(是字符串類型)或者初始值(如果用戶沒有輸入信息);如果用戶單擊“取消”按鈕,則prompt()方法返回null,我們稱這種對話框為提示框

switch_to_alert函數捕捉彈出的對話框

#! /usr/bin/env python
#coding=utf-8
from selenium import webdriver
import time

driver = webdriver.Firefox()
driver.get("xxxxxxxxxxxx")
time.sleep(3)

#alert提示框
driver.find_element_by_id("alert").click()
time.sleep(3)
#定位到這個alert彈窗上
alert = driver.switch_to_alert()
print
(alert.text()) #確定 alert.accept() #取消 #alert.dismiss() #confrim確認框 driver.find_element_by_id("confirm").click() time.sleep(3) confirm = driver.switch_to_alert() print(confirm.text) confirm.accept() #confirm.dismiss() #prompt彈框 driver.find_element_by_id("prompt").click() time.sleep(3) prompt = driver.switch_to_alert() prompt.send_keys("xxxxx") time.sleep(3) print(prompt.text) prompt.accept() #prompt.dismiss() driver.quit()

alert()、confirm()、prompt()的區別和聯系:

警告框alert()

alert是警告框,只有一個按鈕“確定”無返回值,警告框經常用於確保用戶可以得到某些信息。當警告框出現後,用戶需要點擊確定按鈕才能繼續進行操作。語法:alert("文本")。

確認框confirm()

confirm是確認框,兩個按鈕,確定或者取消,返回true或false。確認框用於使用戶可以驗證或者接受某些信息。當確認框出現後,用戶需要點擊確定或者取消按鈕才能繼續進行操作。如果用戶點擊確認,那麽返回值為 true。如果用戶點擊取消,那麽返回值為 false。語法:confirm("文本")

提示框prompt()

prompt是提示框,返回輸入的消息,或者其默認值提示框經常用於提示用戶在進入頁面前輸入某個值。當提示框出現後,用戶需要輸入某個值,然後點擊確認或取消按鈕才能繼續操縱。如果用戶點擊確認,那麽返回值為輸入的值。如果用戶點擊取消,那麽返回值為 null。語法:prompt("文本","默認值")

Selenium-js彈窗浮層