selenium获取多窗口句柄并一一切换至原窗口句柄(三个窗口)

网上有很多是selenium基于python来获取两个窗口句柄与切换,本文实现用python+selenium获取多窗口句柄并一一切换至原窗口句柄(三个窗口),且在每个窗口下进行一个搜索或翻译,然后截图。

目前成都创新互联已为上千余家的企业提供了网站建设、域名、网站空间、网站改版维护、企业网站设计、汕尾网站维护等服务,公司将坚持客户导向、应用为本的策略,正道将秉承"和谐、参与、激情"的文化,与客户和合作伙伴齐心协力一起成长,共同发展。

代码如下:

# coding=utf-8
from selenium import webdriver
import time

driver = webdriver.Chrome()
driver.maximize_window() # 窗口最大化

driver.get('https://www.baidu.com') # 在当前浏览器中访问百度
time.sleep(2)
#print(driver.current_window_handle)# 输出当前窗口句柄(百度)
frist_handle = driver.current_window_handle

# 新开一个窗口,通过执行js来新开一个窗口,访问搜狗
js='window.open("https://www.sogou.com");'
driver.execute_script(js)

# 再新开一个窗口,通过执行js来新开一个窗口,访问有道
js='window.open("http://www.youdao.com/");'
driver.execute_script(js)

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

for handle in handles:# 切换窗口(切换到有道)
    if handle != frist_handle:
        driver.switch_to_window(handle)
        #print(driver.current_window_handle)  # 输出当前窗口句柄(有道)
        driver.find_element_by_id("translateContent").send_keys("selenium")  #有道翻译selenium
        driver.find_element_by_css_selector("button").click()
        #driver.find_element_by_css_selector("[data-rlog='search-popup-close-win']").click()
        driver.find_element_by_css_selector("[class='close js_close']").click()  #关闭弹窗
        driver.get_screenshot_as_file("D:\windows\\youdao.jpg")  # 截图  可自定义截图后的保存位置(D:\windows)和图片命名(youdao.jpg)
        time.sleep(5)
        break
driver.close() #关闭当前窗口(有道)

for handle in handles:# 切换窗口(切换到搜狗)
    if handle != frist_handle:
        driver.switch_to_window(handles[-1]) #此时只剩两个句柄,取最后一个
        #print(driver.current_window_handle)  # 输出当前窗口句柄(搜狗)
        driver.find_element_by_id("query").send_keys("selenium")  #搜狗搜索selenium
        driver.find_element_by_id("stb").click()
        time.sleep(2)  #等待2s为了截完整搜索结果图
        driver.get_screenshot_as_file("D:\windows\\sougou.jpg")  # 截图  可自定义截图后的保存位置和图片命名
        time.sleep(5)
        break
driver.close() #关闭当前窗口(搜狗)

#driver.switch_to_window(frist_handle) #切换回百度窗口
driver.switch_to_window(handles[0]) #切换回百度窗口
driver.find_element_by_id("kw").send_keys("selenium")  #百度搜索selenium
driver.find_element_by_id("su").click()
time.sleep(2) #等待2s为了截完整搜索结果图
driver.get_screenshot_as_file("D:\windows\\baidu.jpg")  #截图  可自定义截图后的保存位置和图片命名
time.sleep(5)
driver.quit() #退出浏览器

截图如下:

selenium获取多窗口句柄并一一切换至原窗口句柄(三个窗口)

当前标题:selenium获取多窗口句柄并一一切换至原窗口句柄(三个窗口)
网址分享:https://www.cdcxhl.com/article30/joohso.html

成都网站建设公司_创新互联,为您提供域名注册全网营销推广电子商务软件开发定制开发网页设计公司

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联

外贸网站建设