Selenium2+python自動化系列16-alert\confirm\prompt

來源:互聯網
上載者:User

標籤:   切換   file   技術   get   from   smis   ext   type   

前言   

不是所有的彈出框都叫alert,在使用alert方法前,先要識別出到底是不是alert。先認清楚alert長什麼樣子,下次碰到了,就可以用對應方法解決。

alert\confirm\prompt彈出框操作主要方法有:

text() :擷取文本值

accept() :點擊"確認"

dismiss() :點擊"取消"或者叉掉對話方塊

send_keys() :輸入文本值 --僅限於prompt,在alert和confirm上沒有輸入框


一、認識alert\confirm\prompt

     1.如,從上到下依次為alert\confirm\prompt,先認清楚長什麼樣子,以後遇到了就知道如何操作了。

 

    2.html源碼如下(有興趣的可以copy出來,複製到txt文本裡,尾碼改成html就可以了,然後用瀏覽器開啟)

<html>  

<head>  

   <title>Alert</title>  

    </head>  

<body>  

<input id = "alert" value = "alert" type = "button" onclick = "alert(‘您關注了yoyoketang嗎?‘);"/>  

<input id = "confirm" value = "confirm" type = "button" onclick = "confirm(‘確定關注公眾號:yoyoketang?‘);"/>  

<input id = "prompt" value = "prompt" type = "button" onclick = "var name = prompt(‘請輸入公眾號:‘,‘yoyoketang‘); document.write(name) "/>    

</body>   

</html>  


二、alert操作

    1.先用switch_to_alert()方法切換到alert彈出框上

    2.可以用text()方法擷取彈出的文本 資訊

    3.accept()點擊確認按鈕

    4.dismiss()相當於點右上方x,取消彈出框

(url的路徑,直接複製瀏覽器開啟的路徑)


三、confirm操作

   1.先用switch_to_alert()方法切換到alert彈出框上

    2.可以用text()方法擷取彈出的文本 資訊

    3.accept()點擊確認按鈕

    4.dismiss()相當於點取消按鈕或點右上方x,取消彈出框

(url的路徑,直接複製瀏覽器開啟的路徑)


四、prompt操作

   1.先用switch_to_alert()方法切換到alert彈出框上

    2.可以用text()方法擷取彈出的文本 資訊

    3.accept()點擊確認按鈕

    4.dismiss()相當於點右上方x,取消彈出框

    5.send_keys()這裡多個輸入框,可以用send_keys()方法輸入常值內容

(url的路徑,直接複製瀏覽器開啟的路徑)?


五、select遇到的坑

    1.在操作百度設定裡面,點擊“儲存設定”按鈕時,alert彈出框沒有彈出來。(Ie瀏覽器是可以的)

    2.分析原因:經過慢慢調試後發現,在點擊"儲存設定"按鈕時,由於前面的select操作後,失去了焦點

    3.解決辦法:在select操作後,做個click()點擊操作


s = driver.find_element_by_id("nr")

Select(s).select_by_visible_text("每頁顯示20條")

time.sleep(3)

s.click()



六、最終代碼

# coding:utf-8

from selenium import webdriver

from selenium.webdriver.common.action_chains import ActionChains

from selenium.webdriver.support.select import Select

import time

driver = webdriver.Firefox()

url = "https://www.baidu.com"

driver.get(url)

driver.implicitly_wait(20)

# 滑鼠移動到“設定”按鈕

mouse = driver.find_element_by_link_text("設定")

ActionChains(driver).move_to_element(mouse).perform()

driver.find_element_by_link_text("搜尋設定").click()

# 通過text:select_by_visible_text()

s = driver.find_element_by_id("nr")

Select(s).select_by_visible_text("每頁顯示20條")

time.sleep(3)

s.click()

driver.find_element_by_link_text("儲存設定").click()

time.sleep(5)

# 擷取alert彈框

t = driver.switch_to_alert()

print t.text

t.accept()


這一篇應該比較簡單,Alert相關的內容比較少,雖然有一些頁面也有彈窗,但不是所有的彈窗都叫alert。alert的彈出框介面比較簡潔,是調用的系統彈窗警告框,沒花裡胡哨的東西,還是很容易區分的。

 

Selenium2+python自動化系列16-alert\confirm\prompt

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.