Python+selenium 怎么定位自定义弹窗元素

Python019

Python+selenium 怎么定位自定义弹窗元素,第1张

首先要确定弹窗的类型。

弹出窗口基本上有如下三种实现方式:

(1)div弹窗

(2)新标签页弹窗

(3)alert弹窗

针对不同类型的弹窗,相应采取不同的定位措施。

由于不知问题中实际的弹窗类型,在此笼统说下:

1、div弹窗

对于此类弹窗,可以直接用 find_element_by_... 得到 div 窗口中各元素,再进行操作即可,需要注意的一点是,需要等 div 窗口元素加载完毕之后,再去获取窗口中的元素。

2、新标签页弹窗

新标签页弹窗,则需要进行窗口的切换。从图片看,问题中的弹窗应该不属于此类弹窗。

3、alert弹窗

此类弹窗是由 js 执行 alert、confirm、prompt等生成的弹窗,其应对方法是:

使用 switch_to.alert() 方法定位到 alert/confirm/prompt,然后使用text/accept/dismiss/send_keys 方法进行操作。

切换到新窗口,再定位元素

print browser.current_window_handle # 输出当前窗口句柄(百度)

handles = browser.window_handles # 获取当前窗口句柄集合(列表类型)

for handle in handles:# 切换窗口(切换到搜狗)

if handle!=browser.current_window_handle:

print 'switch to ',handle

browser.switch_to_window(handle)

print browser.current_window_handle # 输出当前窗口句柄(搜狗)

break