Selenium won't open a new URL in a new tab (Python & Chrome)

后端 未结 4 1745
日久生厌
日久生厌 2020-11-27 17:03

I want to open quite a few URLs in different tabs using Selenium WebDriver & Python.

I am not sure what is going wrong:

driver = webdriver.Chrome         


        
4条回答
  •  囚心锁ツ
    2020-11-27 17:42

    An alternative way to open a new window is to use JavaScript and the window handler to switch between them.

    driver = webdriver.Chrome()
    
    # Open a new window
    # This does not change focus to the new window for the driver.
    driver.execute_script("window.open('');")
    
    # Switch to the new window
    driver.switch_to.window(driver.window_handles[1])
    driver.get("http://stackoverflow.com")
    
    # close the active tab
    driver.close()
    
    # Switch back to the first tab
    driver.switch_to.window(driver.window_handles[0])
    driver.get("http://google.se")
    
    # Close the only tab, will also close the browser.
    driver.close()
    

    If you look at your browser while you're executing it will look like the new window has focus, but to the webdriver, it doesn't. Don't be fooled by the visual. Also remember to select a new window handler when you close a tab as it will set the driver.current_window_handle to

    selenium.common.exceptions.NoSuchWindowException: 
        Message: no such window: target window already closed from unknown error: web view not found
      (Session info: chrome=)
      (Driver info: chromedriver= (),platform=)
    

    on .close() and it will throw that error if you try to do stuff with the driver at that stage.

提交回复
热议问题