I am using the Selenium Python Bindings for web browser automation in Chrome. As part of the automation script, I click on a link and the website opens the page in a new tab. However, the WebDriver object in my python script is still pointing to the first tab.
I have tried all of the options offered on this answer but none were successful.
The only code I have been able to get to work so far is this:
driver.switch_to.window(driver.window_handles[1])
The problem I have with this is that I'm afraid I can't guarantee that the new tab will be at index 1, nor do I think I can guarantee that the new tab is at the last index. I did try using keys like this:
driver.find_element_by_tag_name('body').send_keys(Keys.CONTROL + Keys.TAB)
But using some logging I saw that the driver was still pointing to the first tab. Is there a way to focus on the current tab that chrome is showing?
Whenever I have cases like these I switch to the last window handle, so far it worked for me:
driver.switch_to.window(driver.window_handles[-1])