Cerchi un aiuto su come dovrei ottenere una nuova finestra "pop-up" che viene attivata per la visualizzazione dopo aver fatto clic su un pulsante "login".Passaggio a una nuova finestra con selenio/goniometro Javascript
Sono in grado di arrivare a quando la finestra viene visualizzata ma non credo che il codice che sto attualmente utilizzando per afferrare la finestra "handle" funzioni correttamente. La mia situazione è un po 'diversa in quanto utilizzo il goniometro all'interno delle mie pagine, ma la nuova finestra non è basata su angolare, quindi devo passare a utilizzare solo selenio WebDriver mentre sono in quella finestra. (Qualcuno ha qualche idea se ci potrebbero essere problemi con questo approccio?)
Di seguito puoi trovare il frammento di codice che sto usando per creare il driver del selenio, oltre a quello che prova a "passare a/gestire l'handle" della nuova finestra che sta spuntando. So che non funziona correttamente perché continuo a ricevere errori "No Such Element" nel codice che segue cercando di trovare un modulo nella pagina.
// Create selenium webdriver/driver
var webdriver = require('selenium-webdriver');
var driver = new webdriver.Builder().
withCapabilities(webdriver.Capabilities.chrome()).
build();
// Now make sure that the new window is popping up and we are navigating correctly to it
var handlePromise = browser.driver.getAllWindowHandles();
handlePromise.then(function (handles) {
// parentHandle = handles[0];
var popUpHandle = handles[1];
// Change to new handle
browser.driver.switchTo().window(popUpHandle);
var popUpHandleFinal = browser.driver.getWindowHandle();
expect(popUpHandleFinal).toEqual(popUpHandle);
});
paio di cose su questo:
Se rimuovo il "browser" in linea "browser.driver.switchTo() finestra (popUpHandle)" in modo che si legge come "autista. switchTo(). window (popUpHandle) "Ricevo indietro e errore che legge come" UnknownError: unknown error: 'name' deve essere una stringa non vuota "Dopo aver effettuato una ricerca su questo è perché il metodo" switchTo() "sul driver non può essere nullo Questo errore viene risolto se utilizzo il codice mostrato sopra.
Non sono sicuro al 100% se dovrei usare il goniometro (globale "browser" var) o utilizzare il "driver" dritto (selenio) che ho impostato prima come modo per ottenere le finestre.
Grazie per il vostro aiuto
Può essere correlato dovrebbe occupare: http://stackoverflow.com/questions/28511013/non-angular-page- aperto-dopo-un-click. – alecxe
Se si è già nel contesto di un driver del goniometro funzionante, non è necessario avviare internamente un'istanza di webdriver separata. (Questo probabilmente confonderà il browser con due controller remoti). Il goniometro espone il suo webdriver crudo tramite 'browser.driver', quindi dovrebbe essere corretto da usare. –
Questo era il mio problema principale. Grazie. Una volta che ho eliminato l'impostazione dell'altro driver, sono tornato a utilizzare browser.driver dopo alcune iterazioni riuscendo a farlo funzionare. – parchambeau