gpt4 book ai didi

Java Selenium - 从 HandsonTable 获取数据

转载 作者:行者123 更新时间:2023-12-01 20:27:09 25 4
gpt4 key购买 nike

我正在尝试从 Handsontable 获取数据。该表包含 700 条数据,但是当我通过 Xpath 定位时,起初仅在 55 条数据中找到 27 条数据,当我向下滚动时,它会变为 40 条中的 22 条。每次它都会随机获取数据。下面我尝试创建滚动和 getColumnData 函数。

private void scrollDown() {
JavascriptExecutor js = (JavascriptExecutor) driver();
js.executeScript("arguments[0].scrollIntoView({block: 'center'});", rows().get(rows().size()-1));
}


protected LinkedList<WebElement> getColumnWebElement(String columnName)
{
LinkedList<WebElement> columnElement = new LinkedList<WebElement>();
int indexColumn = getLocationOfColumnInHeader(columnName) + 3;
WebElement headerRow = this.headerRow();
List<WebElement> rows = this.rows();
System.out.println(this.rows());
for (WebElement currentRow : rows)
if (currentRow != headerRow)
{
scrollDown();
WebElement td = driver.getValidatedElementNoWait(currentRow, By.xpath("./td[" + indexColumn + "]"));
if (td != null)
{
columnElement.add(td);
}
}
return columnElement;
}

是否有办法根据列名称读取所有动态变化的数据。

提前致谢!

最佳答案

我使用了以下解决方法。

  public void changeTableAttribute() {
JavascriptExecutor js = (JavascriptExecutor) driver();
WebElement element = driver().findElement(By.xpath("//hot-table/div[@class='handsontable-container handsontable htColumnHeaders']"));
js.executeScript("arguments[0].setAttribute('style', 'height:15000px')", element);
}

关于Java Selenium - 从 HandsonTable 获取数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58910176/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com