關於Python+selenium 定位瀏覽器彈窗元素


鏈接:https://www.jianshu.com/p/4c3330c1cdb5

(1)div彈窗

(2)新標簽頁彈窗

(3)alert彈窗

一,div彈窗

div彈窗是瀏覽器中比較好定位的彈窗,定位的方法與普通的元素一樣。不過這里會有一個坑,明明可以找到這個按鈕,但是就是定位不到。這個就是因為當前有div彈窗彈出的時候,需要設置一下等待時間,等頁面元素加載完畢,再去做其他操作。



二,新標簽頁彈窗

新標簽頁彈窗,則需要進行窗口的切換。此處第一個窗口打開百度首頁,在打開一個新窗口打開京東首頁,在兩個窗口之間進行切換。切換到不同的窗口之后,就可以用常規的方法進行元素的定位。

handles = driver.window_handles # 獲取當前打開的所有窗口的句柄

driver.switch_to.window(handles[N]) # 切換到其中一個窗口

其中,獲取的句柄下標從0開始,即第一個窗口為[0]、第二個窗口為[1],如此類推。使用switch_to.window方法切換到新標簽頁后就可以做其他操作了。

三、alert彈窗

在WebDriver中處理JS所生成的alert、confirm以及prompt十分簡單,具體做法是使用switch_to.alert()方法定位到alert/confirm/prompt,然后使用text/accept/dismiss/send_keys等方法進行操作。

1.text:返回alert/confirm/prompt中的文字信息。

2.accept():接受現有警告框。

3.dismiss():解散現有警告框。

4.send_keys(keysToSend):發送文本至警告框。 keysToSend:將文本發送至警告框。

 

如圖所示,百度搜索設置彈出的窗口是不能通過前端工具對其進行定位的,這個時候就可以通過switch_to.alert()方法接受這個彈窗。


selenium_彈出框的處理_TypeError: 'Alert' object is not callable

問題描述:

    在使用selenium操作網頁彈出框的時候,彈出框是alert類型,預想是點擊彈出框的確定。在使用selenium中的switch_to.alert().accept()的方法報錯

報錯如下:

Traceback (most recent call last):
File "F:/project/全國selenium_測試.py", line 59, in <module>
huoqu_cookie1 = huoqu_cookie()
File "F:/project/全國selenium_測試.py", line 50, in huoqu_cookie
browser.switch_to.alert().accept()
TypeError: 'Alert' object is not callable
原因分析

    'Alert' object is not callable 的含義為Alert不能被函數調用,它不是一個函數。

解決方案

將alert后的括號去掉。

正確代碼:

browser.switch_to.alert.accept()
————————————————
版權聲明:本文為CSDN博主「Urila」的原創文章,遵循 CC 4.0 BY-SA 版權協議,轉載請附上原文出處鏈接及本聲明。
原文鏈接:https://blog.csdn.net/jss19940414/article/details/90268434


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM