如何在WebDriver中打印主菜单的所有子菜单

时间:2019-06-20 07:25:46

标签: selenium webdriver

我要打印第一个列表[电子产品]主菜单的子菜单文本 在硒的webdriver。 网址:https://www.flipkart.com 但是使用该sumMenu的xpath会有一些问题。 我该如何使用xpath和所有内容。

3 个答案:

答案 0 :(得分:0)

您可以尝试使用以下x-path来获取主菜单“电子”的所有子菜单

//span[.='Electronics']/following-sibling::ul//li/a

答案 1 :(得分:0)

尝试下面的代码。如果要获取其他子菜单文本,请更改String searchSubMenu = "Electronics";的值,希望对您有所帮助。

    driver.get("https://www.flipkart.com/");

    //wait login popup and click
    new WebDriverWait(driver, 20).until(ExpectedConditions.presenceOfElementLocated(By.xpath("//*[@class='_2AkmmA _29YdH8']")));
    driver.findElement(By.xpath("//*[@class='_2AkmmA _29YdH8']")).click();

    String searchSubMenu = "Electronics";

    int totalSubMenu = driver.findElements(By.xpath("//*[contains(@class,'Wbt_B2')]")).size();

    System.out.println("Search for : " +searchSubMenu);

    for(int i=1; i<=totalSubMenu; i++) {
        String getTextSubMenu = driver.findElement(By.xpath("(//*[contains(@class,'Wbt_B2')])[" +i +"]")).getText();
        System.out.println("Get Sub Menu Title : "+ getTextSubMenu);
        if (getTextSubMenu.equals(searchSubMenu)) {
            driver.findElement(By.xpath("(//*[contains(@class,'Wbt_B2')])[" +i +"]")).click();
            Thread.sleep(1000);
            String targetAllGetText = driver.findElement(By.xpath("(//*[contains(@class,'_3GtRpC')])[" +i +"]")).getText();
            System.out.println(targetAllGetText);
            break;
        }
    }

    driver.quit();

答案 2 :(得分:0)

它将为您提供帮助:请尝试 字符串SubMenu = driver.findElement(By.xpath(“元素的Xpath”))。getText();             System.out.println(SubMenu); 如果您想要大小: int Size = driver.findElement(By.xpath(“元素的Xpath”));  System.out.println(Size);