Ich versuche, eine neue Registerkarte oder ein neues Fenster in einem Browser mit Selen für Python zu öffnen. Es ist von geringer Bedeutung, wenn eine neue Registerkarte oder ein neues Fenster geöffnet wird, es ist nur wichtig, dass eine zweite Instanz des Browsers geöffnet wird.Wie öffnet man ein neues Fenster in einem Browser mit Selenium WebDriver für Python?
Ich habe bereits verschiedene Methoden ausprobiert und keine davon ist erfolgreich.
zu einem Fenster wechseln, das mit der Hoffnung, nicht vorhanden ist, dass es dann ein neues Fenster bei einem Ausfall öffnen würde zu lokalisieren das Fenster:
driver.switch_to_window(None)
Iterieren durch offene Fenster (obwohl es derzeit nur eine)
for handle in driver.window_handles: driver.switch_to_window(handle)
Der Versuch, eine Tastaturtaste drücken zu simulieren
from selenium.webdriver.common.keys import Keys driver.send_keys(Keys.CONTROL + 'T')
Das Problem mit dieser insbesondere war, dass es nicht möglich erscheint Schlüssel an den Browser direkt zu senden, nur auf ein bestimmtes Element wie folgt aus:
driver.find_element_by_id('elementID').send_keys(Keys.CONTROL + 'T')
Wenn jedoch Ein Befehl wie dieser wird an ein Element gesendet, es scheint absolut nichts zu tun. Ich habe versucht, die oberste HTML-Element auf der Seite zu finden und die Schlüssel zu, dass zu senden, wurde aber wieder gescheitert:
driver.find_element_by_id('wrapper').send_keys(Keys.CONTROL + 'T')
Eine andere Version dieser fand ich online, und war nicht in der Lage ihre Gültigkeit oder Mangel zu überprüfen davon, weil ich nicht sicher bin, welche Klasse/Modul, das
act = ActionChains(driver)
act.key_down(browserKeys.CONTROL)
act.click("").perform()
act.key_up(browserKeys.CONTROL)
Etwas sehr ähnlich mit unterschiedlichen Syntax muss importieren (ich bin nicht sicher, ob eine oder beide diese korrekte Syntax ist)
actions.key_down(Keys.CONTROL)
element.send_keys('t')
actions.key_up(Keys.CONTROL)
Das nur für Browser, Firefox, Chrome, etc. In Beispiel PhantomJS hat keine Tastenbelegungen und Sie müssen 'execute_script()' mit dem richtigen JavaScript-Code aufrufen. Falls Sie Elemente/Cookies übergeben müssen, erstellen Sie einfach einen target = _blank-Link und klicken Sie dann darauf. – erm3nda