【问题标题】:how to scroll the horizontal bar in a grid using selenium如何使用硒滚动网格中的水平条
【发布时间】:2016-10-19 10:30:43
【问题描述】:

如何使用 selenium 滚动网格中的水平条。这应该在多个选择中重复。我必须选择值并单击提交。我必须检查所有列标题。但是,有 46 列。请帮忙。我无法移动它。

List<WebElement> gridlabellist = driver.findElements(By.xpath(".//*[@id='gview_list']/div[3]/div/table/thead/tr/th"));
List<String> all_gridlabellist=new ArrayList<>();
Thread.sleep(1000);
int gl;
System.out.println(gridlabellist.size());
for(gl=0; gl<gridlabellist.size(); gl++)
{
    String gridlabelname=gridlabellist.get(gl).getText();
    boolean dislabel=gridlabellist.get(gl).isEnabled();
    //System.out.println(labelname);

    if((gridlabelname != null) && (gridlabelname.length()!=0) && dislabel)
    {
        System.out.println("\nGrid Label Names displayed: "  + gridlabelname);

        ((JavascriptExecutor)driver).executeScript("window.scrollBy(2000,0)");  
        System.out.println("\nGrid Label Names displayed: " +gridlabelname);
    }
    all_gridlabellist.add(gridlabellist.get(gl).getText());
} 

【问题讨论】:

  • 我试过 boolean dislabel=gridlabellist.get(gl).isEnabled();之前也尝试过使用“boolean dislabel=gridlabellist.get(gl).isdisabled();”
  • 请帮帮我!

标签: java selenium


【解决方案1】:

尝试不同的方法并测试它是否适合您

WebElement scroll = driver.findElement(By.xpath("//blah-blah")); JavascriptExecutor js = (JavascriptExecutor)driver; js.executeScript( driver.execute_script("arguments[0].scrollIntoView()", scroll);

【讨论】:

  • 感谢 nandesh 的回复,但我有 30 多列。我必须收集所有列标题。根据您的回复,我必须按页收集。还有其他方法吗?
【解决方案2】:

这是一个非常古老的问题,但仍然足够相关,可以用其他方式回答,解决这个问题的另一种方法是缩放,缩放到 50-30% 甚至 10%;这将加载所有列,然后使用 xpath 读取它们。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-11-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-05-22
    • 2016-12-08
    • 2017-07-06
    • 2016-09-30
    相关资源
    最近更新 更多