Python Selenium 获取不到弹出框的另外一种思路

Posted neice

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python Selenium 获取不到弹出框的另外一种思路相关的知识,希望对你有一定的参考价值。

大家都知道弹出框大致可以分为三种:1.警告消息框(alert)、2.确认消息框(confirm)、3.提示消息对话(prompt)

而selenium 提供switch_to_alert()方法来定位:

  • switch_to_alert()   #定位弹出对话
  • text()                  #获取对话框文本值
  • accept()                   #相当于点击"确认"
  • dismiss()                  #相当于点击"取消"
  • send_keys()             # 输入值

上面的都是一般弹出框的处理方法,但是我在项目中遇到了一个DIV模拟的窗口,用以上方法都获取不到这个弹出框:

例如:

技术分享图片

技术分享图片

 

在常规方法都试过后,我想到两个解决思路:1.返回当前页面最顶层,然后获取页面值;2.定位是否有确认按钮来判断弹出框。

而在这里,我选择了第2种方法:

1     try:
2       driver.find_element_by_xpath("/html/body/div[10]/div/div[2]/button").click()
3     except:
4         print(抄到数据次数:)
5     else:
6         print(读取超时,刷新后重试!)

有时候换一种思路…事情就能够得到解决。

 

以上是关于Python Selenium 获取不到弹出框的另外一种思路的主要内容,如果未能解决你的问题,请参考以下文章

弹出框处理

使用Selenium框架在做Web自动化测试时,如何处理弹出框?

WebDriver API弹出框的处理

selenium自动化实施中对windows弹出框的几种常见处理方案

selenium+python之 辨识alertwindow以及操作

selenium自动化实施中对windows弹出框是怎样处理的?