python + selenium + chrome 如何打开新窗口,并实现窗口切换

4 篇文章 0 订阅
4 篇文章 0 订阅

from selenium import webdriver
from selenium.webdriver.support.ui import WebDriverWait
import time

browser = webdriver.Chrome()
browser.set_window_size(900, 900)   # 根据桌面分辨率来定

# 打开淘宝页面
browser.get("https://www.taobao.com/")

# 获取淘宝页面的 title和handle信息
taobaoWindowHandle = browser.current_window_handle
taobaoTitle = browser.title
print(f"1. taobaoTitle = {taobaoTitle}, taobaoWindowHandle = {taobaoWindowHandle}")

# 打开路由器配置页面 http://172.16.0.1
js = 'window.open("http://172.16.0.1");'
browser.execute_script(js)
time.sleep(2)
# 如果没有switch做窗口切换的话,即使有打开新的窗口,浏览器还是会focus在原来的窗口
print(f"2. routing Configure Page had been opened, currentTitle = {browser.title}, currentHandle = {browser.current_window_handle}")

# 拿到所有的窗口
allHandles = browser.window_handles
print(f"3. allHandles = {allHandles}")

# 第一种思路:按照handle,从淘宝窗口切换到路由器配置窗口
routeWindowHandle = 0
routeTitle = 'None'
for handle in allHandles:
    if handle != browser.current_window_handle:
        browser.switch_to_window(handle)
        routeWindowHandle = browser.current_window_handle
        routeTitle = browser.title
        break
print(f"4. switch to routeWindow, routeWindowHandle = {routeWindowHandle}, routeTitle = {routeTitle}, currentHandle = {browser.current_window_handle}, currentTitle = {browser.title}")

# 第二种思路:当然还有一种方法是根据窗口的title进行切换
# 从路由器配置窗口,切换回淘宝窗口
for handle in allHandles:
    if browser.title.find("淘宝网") == -1:
        browser.switch_to_window(handle)
print(f"5. switch to taobaoWindow, taobaoWindowHandle = {taobaoWindowHandle}, taobaoTitle = {taobaoTitle}, currentHandle = {browser.current_window_handle}, currentTitle = {browser.title}")

time.sleep(30)
# 第三种思路:按照windowHandle切换,切换到taobao窗口
browser.switch_to_window(taobaoWindowHandle)
print(f"6. switch back to taobao window, currentHandle = {browser.current_window_handle}, taobaoWindowHandle = {taobaoWindowHandle}, routeWindowHandle = {routeWindowHandle}")

time.sleep(10)
browser.quit()

  • 3
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

梖梖

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值