Estou automatizando o software usando selênio e há um elemento web que está localizado dentro do quadro e precisa ser clicado.
Eu tentei as seguintes maneiras. usando a classe expectCondtion. usando thread.sleep() usando um método click() simples de selênio. usando javascriptExecutor.
mas não funciona.
existe outra maneira de resolver isso?
Responder1
Primeiro de tudo você precisatrocarpara oiframeonde o elemento reside, se você não o fizer - o Selenium não será capaz de encontrar o elemento como
driver.switchTo().frame("your frame name or ID");
Em segundo lugar, você precisa garantir que está usando o corretoestratégia de localizaçãoe certifique-se de que o localizador esteja correto. Preste atenção às mensagens/logs de erro, pois pode ser que o clique seja interceptado por outro elemento (pai, pop-up de cookie ou qualquer outro)
Terceiro, considere usarWebDriverEspereclasse para implementarEspera explícitacomo pode ser o caso do elemento estar sendo carregadode forma assíncronae não disponível imediatamente
WebDriverWait wait = new WebDriverWait(driver,10); wait.until(ExpectedConditions.elementToBeClickable(By.xpath("//your/element/xpath/query"))).click();
Referências: