Python - Как переключаться между вкладками в селене

Я новичок в python и selenium, и я пытаюсь переключаться между вкладками, я уже пробовал использовать обычные ключевые команды, ActionChains и Keys.CONTROL, но он не работает, как бы мне это сделать. Программа следующая

from selenium import webdriver
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.common.action_chains import ActionChains
import webbrowser
import time
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.common.action_chains import ActionChains
import multiprocessing


driver1  = webdriver.Chrome(executable_path="C:\mydriver\chromedriver")
  
ar = ['https://google.com', 'https://bing.com']
for page1 in (ar):
    driver1.execute_script(f"window.open ('{page1}')")
    time.sleep(3)

for x in range (5):
    driver1.find_element_by_tag_name('body').send_keys(Keys.CONTROL + Keys.TAB)

person Ahmad Hassan    schedule 23.11.2020    source источник
comment
Я вижу одну проблему в этой строке for page1 in (ar): это должно быть for page1 in ar:   -  person Patrik    schedule 23.11.2020
comment
Вы можете использовать window_handles из Selenium - попробуйте stackoverflow.com/questions/28715942/:   -  person megargayu    schedule 23.11.2020
comment
ах получил его driver1.switch_to.window (driver1.window_handles [-1]), который восходит к 1, я пытался [1], спасибо   -  person Ahmad Hassan    schedule 23.11.2020


Ответы (1)


взгляните на это руководство: https://www.browserstack.com/guide/how-to-switch-tabs-in-selenium-python.

Но это ключевая часть:

#get current window handle
p = driver.current_window_handle

#get first child window
chwd = driver.window_handles

for w in chwd:
#switch focus to child window
    if(w!=p):
    driver.switch_to.window(w)
break
time.sleep(0.9)
print("Child window title: " + driver.title)
person DMart    schedule 23.11.2020