Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/392.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 Xpath找到的表元素列表只包含10个可见的元素,这些元素具有可以通过getText()方法接收的正确文本值_Java_List_Selenium_Webdriver - Fatal编程技术网

Java Xpath找到的表元素列表只包含10个可见的元素,这些元素具有可以通过getText()方法接收的正确文本值

Java Xpath找到的表元素列表只包含10个可见的元素,这些元素具有可以通过getText()方法接收的正确文本值,java,list,selenium,webdriver,Java,List,Selenium,Webdriver,我想从framable表中获取WebElement对象的列表,并在元素数大于10的情况下使用getText()方法获取文本。用户只能看到10列 我的表是框架式的,一次只显示10列,因此findElements只获取这10个列名 代码,用于获取列值: 代码: 实际结果: 0 element Column1 1 element Column2 2 element Column3 3 element Column4 4 element Column5 5 element Column6 6

我想从framable表中获取WebElement对象的列表,并在元素数大于10的情况下使用getText()方法获取文本。用户只能看到10列

  • 我的表是框架式的,一次只显示10列,因此findElements只获取这10个列名

  • 代码,用于获取列值: 代码:

    实际结果:

    0 element Column1 
    1 element Column2 
    2 element Column3 
    3 element Column4 
    4 element Column5 
    5 element Column6 
    6 element Column7 
    7 element Column8 
    8 element Column9 
    9 element Column10 
    10 element 
    11 element 
    12 element 
    13 element 
    14 element 
    

    由于driver.findElements始终只能看到我的脆弱表的可见部分,因此需要将文本值直接放入单独的列表中,移动到整行的所有单元格中(我还需要第一行单元格):

    public TableElements getTableElements()引发异常{
    如果(getColumnsList()!=null){
    List elements=getColumnsList();
    List columnNames=新建ArrayList();
    List rowValues=new ArrayList();
    ListIterator listItr=null;
    int columnsumber=elements.size();
    System.out.println(“columnsumber是:”+driver.findElement(By.xpath(datasource)).getText())中的“+columnsumber+”;
    WebElement cell=driver.findElement(By.xpath(getValue(“firstcolumnpath”));
    单元格。单击();
    listItr=elements.listIterator();
    while(listItr.hasNext()){
    add(listItr.next().getText());
    添加(driver.switchTo().activeElement().getText());
    driver.switchTo().activeElement().sendKeys(键.箭头\右);
    }
    返回新的TableElements(列名称、行值);
    }
    否则{
    返回新的TableElements(null,null);
    }
    }
    public List getColumnsList()引发异常{
    if(CSSElementExists(getValue(“columnlabelcss”))
    返回driver.findElements(By.xpath(getValue(“columnLabelsXpath”));
    返回null;
    }
    
    欢迎使用堆栈溢出!我不清楚为什么您希望输出中有
    Column11
    Column15
    。请您的问题提供一个(重点是“可验证的”)说明您的问题。
    0 element Column1 
    1 element Column2 
    2 element Column3 
    3 element Column4 
    4 element Column5 
    5 element Column6 
    6 element Column7 
    7 element Column8 
    8 element Column9 
    9 element Column10 
    10 element Column11 
    11 element Column12 
    12 element Column13 
    13 element Column14
    14 element Column15
    
    0 element Column1 
    1 element Column2 
    2 element Column3 
    3 element Column4 
    4 element Column5 
    5 element Column6 
    6 element Column7 
    7 element Column8 
    8 element Column9 
    9 element Column10 
    10 element 
    11 element 
    12 element 
    13 element 
    14 element 
    
    public TableElements getTableElements() throws Exception {
        if (getColumnsList()!=null) {
    
            List<WebElement> elements = getColumnsList();
            List<String> columnNames = new ArrayList<>();
            List<String> rowValues = new ArrayList<>();
            ListIterator<WebElement> listItr = null;
            int columnsNumber = elements.size();
            System.out.println("columnsNumber is: " + columnsNumber + " in " + driver.findElement(By.xpath(datasource)).getText());
            WebElement cell = driver.findElement(By.xpath(getValue("firstColumnXpath")));
            cell.click();
            listItr = elements.listIterator();
            while (listItr.hasNext()) {
                columnNames.add(listItr.next().getText());
                rowValues.add(driver.switchTo().activeElement().getText());
            driver.switchTo().activeElement().sendKeys(Keys.ARROW_RIGHT);
            }
            return new TableElements(columnNames, rowValues);
        }
        else {
            return new TableElements(null, null);
        }
    }
    
    public List<WebElement> getColumnsList() throws Exception {
        if (CSSElementExists(getValue("columnLabelsCSS")))
            return driver.findElements(By.xpath(getValue("columnLabelsXpath")));
        return null;
    }