Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/346.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何检查a<;中的所有元素;ul>;使用SeleniumWebDriver列出?_Java_List_Selenium_Webdriver - Fatal编程技术网

Java 如何检查a<;中的所有元素;ul>;使用SeleniumWebDriver列出?

Java 如何检查a<;中的所有元素;ul>;使用SeleniumWebDriver列出?,java,list,selenium,webdriver,Java,List,Selenium,Webdriver,是否可以循环浏览的所有li元素。假设我有一个未知数量的li元素,因此循环它们的一种方法是为施加一个for循环,最大可能数为lis,比如100,然后施加try and catch try{ for (int i=0; i<100; i++) { driver.findElement(By.xpath("//div[@id='...']/ul/li[i]")); } } catch {...} 试试看{ 对于(int i=0;iWebdriver有findElementsAPI,可用于此目

是否可以循环浏览
    的所有
    li
    元素。假设我有一个未知数量的
    li
    元素,因此循环它们的一种方法是为
    施加一个
    for
    循环,最大可能数为
    li
    s,比如100,然后施加
    try and catch

    try{
    for (int i=0; i<100; i++) {
     driver.findElement(By.xpath("//div[@id='...']/ul/li[i]"));
    }
    }
    catch {...}
    
    试试看{
    
    对于(int i=0;iWebdriver有
    findElements
    API,可用于此目的

    List<WebElement> allElements = driver.findElements(By.xpath("//div[@id='...']/ul/li")); 
    
    for (WebElement element: allElements) {
          System.out.println(element.getText());
    }
    
    List-allegements=driver.findElements(By.xpath(“//div[@id=”…”]/ul/li”);
    for(WebElement:等位基因){
    System.out.println(element.getText());
    }
    
    如果将索引
    i
    从字符串中取出,则初始代码可能会工作,如下所示:

    try {
        for (int i=0; i<100; i++) {
            driver.findElement(By.xpath("//div[@id='...']/ul/li["+i+"]"));
        }
    }
    catch {...}
    
    试试看{
    对于(inti=0;i
    List-allegements=driver.findElements(By.xpath(“//div[@id=”…')]/ul/li”);
    int s=等位基因.size();
    
    对于(int i=1;i而言,您的目的是获取ul中的所有li。因此,需要首先定位ul,然后定位该ul中的所有li。您可以使用以下Selenium Java代码:

    WebElement ul_element = driver.findElement(By.xpath("//ul[@class='list-unstyled']"));
            List<WebElement> li_All = ul_element.findElements(By.tagName("li"));
            System.out.println(li_All.size());
            for(int i = 0; i < li_All.size(); i++){
                System.out.println(li_All.get(i).getText());
            }
            //OR
            for(WebElement element : li_All){
                System.out.println(element.getText());
            }
    
    WebElement ul_element=driver.findElement(By.xpath(“//ul[@class='list-unstyled']”);
    列出li_All=ul_element.findElements(按.tagName(“li”));
    System.out.println(li_All.size());
    对于(int i=0;i
    您已将i值限制为i<100。如果li s的数量超过100,会发生什么?由于li s的数量未知,将该值设置为100是不明智的。请添加一些解释,说明此答案如何帮助解决当前问题
    WebElement ul_element = driver.findElement(By.xpath("//ul[@class='list-unstyled']"));
            List<WebElement> li_All = ul_element.findElements(By.tagName("li"));
            System.out.println(li_All.size());
            for(int i = 0; i < li_All.size(); i++){
                System.out.println(li_All.get(i).getText());
            }
            //OR
            for(WebElement element : li_All){
                System.out.println(element.getText());
            }