鏈接: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