zoukankan      html  css  js  c++  java
  • 6_6 模拟浏览器的前进后退&窗口句柄切换

    一、可以使用driver.get()方法打开多个窗口但是会覆盖,所以可以用前进后退进行操作

    from selenium import webdriver
    import time
    
    driver_path = r"D:installchromedriverchromedriver.exe"
    driver = webdriver.Chrome(executable_path = driver_path)
    
    #模拟浏览器的前进后退
    driver.get('https://www.baidu.com/')
    driver.get('https://www.taobao.com')
    driver.back()       # 后退到前一个页面
    time.sleep(5)
    driver.forward()    # 前进到前一个页面
    time.sleep(3)
    driver.close()

    二、打开多个窗口及窗口间切换(重要)

     1 """"""
     2 
     3 
     4 from selenium import webdriver
     5 
     6 driver_path = r"D:installchromedriverchromedriver.exe"
     7 driver = webdriver.Chrome(executable_path = driver_path)
     8 
     9 # 打开多窗口页面
    10 driver.get('https://www.baidu.com/')
    11 driver.execute_script("window.open('https://www.taobao.com')")
    12 print(driver.current_url)       # https://www.baidu.com/
    13 # 获取所有窗口句柄
    14 all_h = driver.window_handles
    15 print(all_h)
    16 # 切换窗口句柄
    17 driver.switch_to.window(all_h[-1])      # 切换到最后一个
    18 print(driver.current_window_handle)
    19 print(driver.current_url)       #https://www.taobao.com/
    20 
    21 """
    22 虽然在窗口中切换到了新的页面,但是driver中还没有切换
    23 如果想要在代码中切换到新的页面,并进行爬取,那么要使用driver.switch_to.window()来指定切换的窗口
    24 可以从driver.window_handles中获取窗口句柄,并进行选取。它是以窗口打开的顺序存储窗口的句柄。
    25 """
  • 相关阅读:
    Codeforces Round #407 (Div. 2)A B C 水 暴力 最大子序列和
    Codeforces Round #358 (Div. 2) A B C 水 水 dfs序+dp
    51nod 1225 数学
    HDU 4584 splay
    bzoj 1588 平衡树 splay
    HDU 4722 数位dp
    Kubernetes 自动伸缩 auto-scaling
    转发一篇能看懂的关于ingress的说明
    Http 安全检测
    mdadm 软RAID
  • 原文地址:https://www.cnblogs.com/sruzzg/p/13170758.html
Copyright © 2011-2022 走看看