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

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

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

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

例如:

python 获取窗口位置 python 获取弹出框内容_消息框

python 获取窗口位置 python 获取弹出框内容_弹出框_02

 

在常规方法都试过后,我想到两个解决思路: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('读取超时,刷新后重试!')

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