Selenium动态Dojo表迭代

时间:2017-04-27 19:39:36

标签: javascript selenium exception dojo automated-tests

我在前端有一个用dojo工具包制作的动态网格表。它有一个主div元素,其中包含3个div元素。 3个div是动态元素,只有当你在网格中向下滚动时才会加载。

3个元素中的每个元素最多包含25个元素

请建议我首先动态获取main元素中的所有div元素,然后迭代特定列的表。

下面是我试图将焦点放在表格中并滚动的代码。

WebElement tableClickFirstElement = table.findElement(By.xpath("//*[@id='dojox_grid__View_1']/div/div/div/div[1]/table/tbody/tr/td[6]"));
    tableClickFirstElement.click();
    bd.pause(3000);


    for(int j=0; j<100;j++){
        table.sendKeys(Keys.PAGE_DOWN);
        bd.pause(300);
    }
    bd.pause(3000);

    for(int j=0; j<125;j++){
        table.sendKeys(Keys.PAGE_UP);
        bd.pause(300);
    }
    bd.pause(3000);

下面是代码(上面的继续)我试图从我想要的表的列中获取值

    if(table.findElement(By.xpath("//*[@id='dojox_grid__View_1']/div/div/div[1]")).isDisplayed()){

        for(int a=1;a<=25;a++){ 
        WebElement tableTwoColumn3 = table.findElement(By.xpath("//*[@id='dojox_grid__View_1']/div/div/div[1]/div["+a+"]/table/tbody/tr/td[3]"));   
        tableTwoColumn3.click();
        bd.pause(2000);
        String abc = tableTwoColumn3.getText();

        WebElement tableTwoColumn6 = table.findElement(By.xpath("//*[@id='dojox_grid__View_1']/div/div/div[1]/div["+a+"]/table/tbody/tr/td[6]"));
        tableTwoColumn6.click();
        bd.pause(2000);
        String cde = tableTwoColumn6.getText();

} }

获取值后,我将其与excel进行比较并按下网格外的其他按钮,然后通过单击网格中的下一行来获得焦点,如上所示。

我能够运行for循环只进行1次迭代,第二次迭代失败,并在字符串abc = tableTwoColumn3.getText();

上使用staleElemenentReferenceException

我是硒的新手,所以我不确定我在哪里误会。

0 个答案:

没有答案