Solucionado (ver solução)
Solucionado
(ver solução)
4
respostas

Acessando DIV e sub menus

Como eu consigo acesso de sub menus, tipo expansão de sub menus? vocês sabem que métodos devo utilizar?

4 respostas

Olá Emerson,

uma das formas usadas para acessar submenus é primeiro fazendo uma chamada do findElement() para o menu principal e invocando o método click(). Isso fará o Selenium mover o mouse para o seu menu e abrir o submenu.

Então basta invocar depois novamente o findElement() para o submenu e chamar novamente o click().

Foi justamente isso que eu fiz usando o método FindElement, com menus suspensos funcionou certinho, com linktext.

No entanto o site que eu estou automatizando ele não é suspenso, tem uma seta v indicando que tem outras coisas nesse link, no entanto não consigo acessa - lo.

esse código

import java.util.concurrent.TimeUnit;
import org.openqa.selenium.By;
import org.openqa.selenium.By.ByXPath;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.chrome.ChromeDriver;
import org.openqa.selenium.interactions.Actions;<br>


public class testeAtuo{
    public static void main(String[] args){


        System.setProperty("webdriver.chrome.driver", "C:/ChromeDriver/chromedriver.exe");
        WebDriver driver =     new ChromeDriver();

        driver.get("https://www.bc2.custodia.hm1.scopus.com.br/calilogin/login.jsf");
        driver.manage().window().maximize();
        driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);
        WebElement campoDeTexto = driver.findElement(By.name("param1"));
        campoDeTexto.sendKeys("EBT72858");

        WebElement campoDeTexto2 = driver.findElement(By.name("param2"));
        campoDeTexto2.sendKeys("Ems#246810");
        driver.findElement(By.id("botaoAvancar")).click();
        driver.findElement(By.id("menu1")).click();

        //encontra primeiro menu e move o mouse para ele
        WebElement menu = WebElement menu = driver.findElement(By.xpath("//a[contains(text(),'Administração de Usuários')]"));
        Actions actions = new Actions(driver);
        actions.moveToElement(menu).perform();
        //encontra segundo menu e acessa o menu<br>
        driver.findElement(By.linkText("Incluir Usuários")).click();
    }
}

Olá Emerson,

se entendi bem, para acessar o submenu você precisa clicar no botão v que está localizado no menu principal, é isso? Neste caso, você precisa passar para o findElement um By que encontre o botão v e faça o click() nele. Você pode usar o método By.cssSelector() que recebe como parâmetro uma string que pode ser igual a usada por seletores de css. Ai você só precisa olhar no css da página qual o seletor usado para estilizar o botão v e usar o mesmo no seu By.cssSelector().

solução!

Tentei cssSelector mais não foi, sem problemas, depois tentaremos de outras formas.