python使用selenium如何获取到一个新打开chrome窗口的句柄

情况是这样的,我使用selenium操控chrome打开一个网站,点击一个按钮后,会调用本机的chrome再打开一个新窗口(相当于一个新浏览器进程)进入目标系统(无法直接通过输入url访问目标系统),请问我怎么才能获取到这个新窗口的句柄呢?

目前使用了
handles=driver.window_handles;driver.switch_to.window(handles[-1])好像并不行

from selenium.webdriver.chrome.options import Options
import time

options = Options()
chrome_options.add_experimental_option("excludeSwitches", ['enable-automation', 'enable-logging'])
driver = webdriver.Chrome(chrome_options=chrome_options)

def main():
    page = driver.get('https://www.baidu.com')
    print(driver.title)
    handles=driver.window_handles
    print(handles)
    driver.switch_to.window(handles[-1])
    while 1:
        #if driver.title=='新浪首页':
            #print(driver.title)
        #else:
            #time.sleep(10)
    #driver.find_element_by_id('loginBtn').click() 

if __name__ == "__main__":
阅读 3.8k
1 个回答

(无法直接通过输入url访问目标系统) driver.get('https://www.baidu.com') 你这不是进入百度了吗。 那此时的driver就是百度句柄。

当你再次 driver.get('https://xxx') 产生了2个窗口 那就需要driver.switch_to.window(handles[0])切回百度

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题