Sto tentando di aprire una nuova scheda OPPURE una nuova finestra in un browser che utilizza il selenio per Python. È di poca importanza se viene aperta una nuova scheda o una nuova finestra, è importante solo che venga aperta una seconda istanza del browser.Come aprire una nuova finestra su un browser usando Selenium WebDriver per python?
Ho provato già diversi metodi e nessuno ha avuto successo.
passaggio a una finestra che non esiste nella speranza che sarebbe quindi aprire una nuova finestra in caso di errore di individuare detta finestra:
driver.switch_to_window(None)
iterazione attraverso le finestre aperte (anche se c'è attualmente solo uno)
for handle in driver.window_handles: driver.switch_to_window(handle)
tentativo di simulare un tasto della tastiera
from selenium.webdriver.common.keys import Keys driver.send_keys(Keys.CONTROL + 'T')
Il problema con questo in particolare è che non sembra possibile inviare le chiavi direttamente al browser, solo per un elemento specifico come questo:
driver.find_element_by_id('elementID').send_keys(Keys.CONTROL + 'T')
Tuttavia, quando un comando come questo viene inviato ad un elemento, sembra non fare assolutamente nulla. Ho tentato di individuare l'elemento HTML più in alto nella pagina e inviare le chiavi di quella, ma era ancora una volta incontrato con il fallimento:
driver.find_element_by_id('wrapper').send_keys(Keys.CONTROL + 'T')
Un'altra versione di questo che ho trovato on-line, e non era in grado di verificare la validità o la mancanza ciò perché io non sono sicuro di quale classe/modulo che ha bisogno di importare
act = ActionChains(driver)
act.key_down(browserKeys.CONTROL)
act.click("").perform()
act.key_up(browserKeys.CONTROL)
Qualcosa di molto simile con sintassi diversa (non sono sicuro se uno o entrambi di questi è la correttezza sintattica)
actions.key_down(Keys.CONTROL)
element.send_keys('t')
actions.key_up(Keys.CONTROL)
Questo solo per i browser testa, Firefox, Chrome, ecc. Nell'esempio PhantomJS non ha associazioni di tasti e devi chiamare 'execute_script()' con il codice javascript corretto. Caso è necessario passare elementi/cookie, basta creare un link = _blank target quindi fare clic prima. – erm3nda