Próbuję otworzyć nową kartę LUB nowe okno w przeglądarce przy użyciu selenu dla Pythona. Nie ma znaczenia, czy nowa karta lub nowe okno jest otwarte, ważne jest tylko, aby otworzyła się druga instancja przeglądarki.Jak otworzyć nowe okno przeglądarki przy użyciu Selenium WebDriver dla Pythona?
Próbowałem już kilku różnych metod i żadna nie odniosła sukcesu.
Przejście do okna, które nie istnieje w nadziei, że będzie następnie otworzyć nowe okno po awarii do zlokalizowania powiedział okno:
driver.switch_to_window(None)
iteracja otwartych okien (choć istnieje obecnie tylko jeden)
for handle in driver.window_handles: driver.switch_to_window(handle)
Próba symulować naciśnięć przycisków klawiatury
from selenium.webdriver.common.keys import Keys driver.send_keys(Keys.CONTROL + 'T')
Problem ten w szczególności, że nie wydaje się możliwe, aby wysłać klucze bezpośrednio do przeglądarki, tylko do określonego elementu jak poniżej:
driver.find_element_by_id('elementID').send_keys(Keys.CONTROL + 'T')
Jednak, gdy komenda taka jak ta jest wysyłana do elementu, wydaje się, że absolutnie nic nie robi. Próbowałem zlokalizować najwyższego elementu HTML na stronie i wysłać klucze do tego, ale po raz kolejny spotkał się z porażki:
driver.find_element_by_id('wrapper').send_keys(Keys.CONTROL + 'T')
Inna wersja to znalazłem w internecie, i nie był w stanie zweryfikować jego ważności lub brak ich, bo nie jestem pewien, co klasa/moduł, który wymaga importu
act = ActionChains(driver)
act.key_down(browserKeys.CONTROL)
act.click("").perform()
act.key_up(browserKeys.CONTROL)
coś bardzo podobnego z innej składni (nie jestem pewien, czy jeden lub oba z nich jest poprawna składnia)
actions.key_down(Keys.CONTROL)
element.send_keys('t')
actions.key_up(Keys.CONTROL)
To tylko dla przeglądarek worowych, Firefox, Chrome itp. W przykładzie PhantomJS nie ma żadnych powiązań klawiszy i musisz wywołać 'execute_script()' z poprawnym kodem javascript. Sprawa, w której musisz przekazać przedmioty/pliki cookie, po prostu utwórz link celu = _blank, a następnie kliknij go wcześniej. – erm3nda