如何使用selenium web驱动程序在“ul”,“li”标签中打印内容

时间:2013-12-27 05:06:21

标签: selenium selenium-webdriver

我是硒工具的新手。 我有一个网址为url:https://m.karmaloop.com/

我需要在Shop Mens页面中打印内容,例如,类别,顶级品牌,新品等。

steps:
=====
1.Launch https://m.karmaloop.com/
2.Tap on Shop Mens image
3.User will be navigated to Shop Men's Page.
4.Fetch and display the contents like , Categories,Top Brands, New etc.

我已经编写了访问它的代码。但不幸的是它没有用。

这是我的代码:

driver2.get(configuration.Home_url);

        driver2.findElement(By.xpath(configuration.Shopmens)).click();

        WebElement Mens_Object=driver2.findElement(By.id("browse-new-product"));

        System.out.println("clicked");

        List<WebElement> lists=Mens_Object.findElements(By.tagName("li"));

        System.out.println("captured  ul");

        lists.get(3).click();

        List<WebElement>  ListElements =lists.get(3).findElements(By.tagName("a"));

        System.out.println(ListElements.get(2).getText());

任何人都可以帮我解决这个任务。?

5 个答案:

答案 0 :(得分:2)

使用此代码: -

List<WebElement> liElements = driver.findElements(By
                .xpath("//ul[@id='browse-new-product']/li"));

        System.out.println(liElements.size());

        for (int i = 1; i < liElements.size()+1; i++) {
            WebElement linkElement = driver
                    .findElement(By
                            .xpath("//ul[@id='browse-new-product']/li[" + i
                                    + "]/a"));

            System.out.println(linkElement.getText());
        }

答案 1 :(得分:1)

这肯定有助于获取列表中的元素..

int i = 0;
      List<WebElement> elementsList = seldriver.findElements((By.xpath("/html/body/div[2]/div/div/div/div/div[2]/div/div[1]/div[4]/ul/li")));
      for(WebElement checkBox:elementsList) {

            checkBox = elementsList.get(i);
            String value = checkBox.getText();
            System.out.println("Checkbox = " + value);
             System.out.println(" i =" + i);
             i=i+1;
        }

答案 2 :(得分:0)

我不确定这可能有效但请看看

List<WebElement> allElements = driver.findElements(By.xpath("//div[@id='...']/ul/li")); 

for (WebElement element: allElements) {
      System.out.println(element.getText());
}

答案 3 :(得分:0)

我试图运行你的代码并且它抛出错误说元素不可见。

如果您想对菜单“ lists.get(3).click(); ”执行操作,请始终选择“组”并查找“子”集团“并执行行动。 (确保元素可见)

以下是我在同一网站(https://m.karmaloop.com/)上尝试的示例代码。在这里,我正在尝试检查 类别&gt;&gt;限量版

WebDriver Driver=new FirefoxDriver();
Driver.get("https://m.karmaloop.com/");
Driver.findElement(By.className("category-men")).click();
Driver.findElement(By.linkText("CATEGORIES")).click(); //Selecting a Group
Driver.findElement(By.linkText("LIMITED EDITION")).click(); //Now Selecting a sub Group

除了使用标签之外,尝试使用ID,LinkText,ClassName。希望这有帮助

答案 4 :(得分:0)

以下代码是python语言,对我有用

driver.find_element_by_class_name("category-men").click()
options=driver.find_element_by_class_name("accordion")
for option in options:
    print option.text