Quando usamos o selênio para simular o login, depois de obter o elemento do botão de login, podemos chamar diretamente o método click () para obter o salto de login, e o webdriver neste momento também aponta para
Isso é bom para a página atual, mas deve -se notar que, como a velocidade de carregamento da página é geralmente menor que a velocidade de execução do programa, antes de obter os elementos da página após o login, você pode usar o método Util do WebDriverWait ou usar diretamente o thread.sleep () para deixar o programa dormir por um tempo (não recomendado).
Mas o ponto principal do blog é que, se inserirmos a nova página clicando no hiperlink normal, não podemos obter o novo elemento da página através do método acima, porque o WebDriver neste momento ainda aponta para a página anterior.
Solução: Primeiro, obtenha todas as alças da janela e, em seguida, itera através dessa coleção de identificadores até que o identificador exista seja diferente do identificador da janela atual (CurrentHandle) e transfira o Webdriver anterior para a página apontada pelo novo identificador.
O código é o seguinte:
String currentWindow = driver.getWindowHandle (); // Obtenha o identificador do conjunto de janelas atual <String> handles = driver.getWindowHandles (); // Obtenha as alças de todos os Windows iterator <string> it = handles.iterator (); Webdriver newDriver = nulo; while (it.hasnext ()) {string handle = it.Next (); if (! handle.equals (currentwindow)) {driver = driver.switchto (). Window (handle); // Mudar para a quebra da janela apontada pela nova alça; }}A solução para a falha de obter novos elementos de página com base no selênio é o conteúdo inteiro compartilhado pelo editor. Espero que possa lhe dar uma referência e espero que você possa apoiar mais o wulin.com.