在web自动化测试过程中,有时候点击某个链接时会弹出一个新的窗口,此时我们直接定位的话就会报错,我们应该先切换到要定位的窗口,再去定位要定位的元素。
python3 selenium自动化多窗口的切换

以上是两个窗口,假如我要定位右边的窗口的元素,那我先切换到第二个窗口才能定位。
以下我要实现在https://www.so.com/页面,点击‘360导航’,然后切换到新的窗口,搜索‘shawn’。代码如下:

dr = webdriver.Chrome()
dr.get('https://www.so.com/')
dr.implicitly_wait(10)

dr.find_element_by_link_text('360导航').click()

#获取当前的窗口句柄
window1 = dr.current_window_handle

#获取所有打开的窗口句柄
all_windows = dr.window_handles

#使用for循环遍历窗口,再用if判断语句,找到要定位的窗口
for handle in all_windows:
    if handle != window1:
        dr.switch_to.window(handle)
        dr.find_element_by_id('search-kw').send_keys('shawn')
        dr.find_element_by_id('search-kw').submit()

相关文章: