ultrafunkamsterdam / undetected-chromedriver

Custom Selenium Chromedriver | Zero-Config | Passes ALL bot mitigation systems (like Distil / Imperva/ Datadadome / CloudFlare IUAM)
https://github.com/UltrafunkAmsterdam/undetected-chromedriver
GNU General Public License v3.0
9.65k stars 1.14k forks source link

why can't i control a newly opened tab? #368

Open jBbL81 opened 2 years ago

jBbL81 commented 2 years ago

this code works fine in regular selenium:

from selenium import webdriver
from selenium.webdriver.chrome.service import Service
from webdriver_manager.chrome import ChromeDriverManager
import time

driver = webdriver.Chrome(service=Service(executable_path=ChromeDriverManager().install()))
driver.maximize_window()

driver.get("https://www.google.com/")
time.sleep(3)
driver.execute_script("window.open('');")
driver.switch_to.window(driver.window_handles[1])
driver.get("http://stackoverflow.com")
time.sleep(3)
driver.close()
time.sleep(3)

driver.switch_to.window(driver.window_handles[0])
driver.get("https://bing.com")
time.sleep(3)
driver.close()

...and if i run the undetected chromedriver version it doesn't work:

import undetected_chromedriver.v2 as uc
import time

options = uc.ChromeOptions()
options.add_argument('--disable-popup-blocking')

driver = uc.Chrome(options = options)
driver.maximize_window()

driver.get("https://www.google.com/")
time.sleep(3)
driver.execute_script("window.open('');")
driver.switch_to.window(driver.window_handles[1])
driver.get("http://stackoverflow.com")
time.sleep(3)
driver.close()
time.sleep(3)

driver.switch_to.window(driver.window_handles[0])
driver.get("https://bing.com")
time.sleep(3)
driver.close()

it opens a new tab but it doesn't type the new url in it or anything. the newly opened tab just sits there with a blank page while the new url gets entered in the first tab.

ultrafunkamsterdam commented 2 years ago

remove the time.sleep's.

tab switching works over here. you can use driver.tab_new(url)