Como eu consigo acesso de sub menus, tipo expansão de sub menus? vocês sabem que métodos devo utilizar?
Como eu consigo acesso de sub menus, tipo expansão de sub menus? vocês sabem que métodos devo utilizar?
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()
.
Tentei cssSelector mais não foi, sem problemas, depois tentaremos de outras formas.