关于Python+selenium 定位浏览器弹窗元素

首先要确定弹窗的类型:

(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()方法接受这个弹窗。


代码如下:



------------------------------------------------------------------------------------------------

talk is cheap,show me the code.

作者:Nobita Chen

出处:http://www.cnblogs.com/shwee/

-------------------------------------------

个性签名:路漫漫其修远兮,吾将上下而求索。

Talk is cheap , show me the code.

分类: Selenium+Python

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容