java - Java - Selenium - 超出页面视图的 Div 元素即使在滚动到视图后也不会加载
问题描述
我们一直在为此苦苦挣扎。我们有一个带有 div 元素的页面。
增量元素的 Xpath,例如 tr[2]/td[4],tr[7]/td[4],tr[12]/td[4],tr[17]/td[4],tr [22]/td[4],......
现在的问题是,当我们为上述元素运行循环时,它只显示直到第 4 次迭代的元素。如果有更多项目,我们将无法获取这些元素,因为它们只有在通过手动滚动进入视图后才可见。
程序化滚动将视图显示为纯白色,上面没有任何元素。
所以基本上可见性下方的页面是空白的。当我们滚动时,元素会慢慢出现。
有什么方法可以让我们在不滚动的情况下从该表中获取所有元素?我的理解是,即使这些元素不可见,它们仍然是页面的一部分,因为它们在滚动后变得可见。
我们尝试滚动到元素视图,但得到 Nosuchelementfound 异常。
我们尝试使用键盘向下箭头键使向下的项目可见,但是当行数相当多时,表格屏幕变为白色,我们再次得到相同的 Nosuchelementfound 异常。
while (1<2) {
WebElement pkgtype = driver.findElement(By.xpath("//*[@id=\"sheet1\"]/tbody/tr[2]/td/div/div[1]/table/tbody/tr["+ cmtab +"]/td[6]"));
Thread.sleep(2000);
js.executeScript("arguments[0].scrollIntoView(true);", pkgtype);
Thread.sleep(2000);
String cmpk = pkgtype.getAttribute("innerHTML");
if(cmpk.equals(temppk)) {
pkgtype.click();
try {
pkgtype.click();
}
catch(Exception e) {
}
driver.findElement(By.id("_editInput0")).sendKeys(mPkgType);
driver.findElement(By.xpath("//*[@id=\"sheet1\"]/tbody/tr[2]/td/div/div[1]/table/tbody/tr["+ cmtab +"]/td[8]")).click();
cmtab = cmtab + 5;
}
}
}
catch(Exception e) {
}```
解决方案
推荐阅读
- python - Jupyter notebook 错误:端口 8888 已在使用中,正在尝试另一个端口
- java - 读取 XML 文件只获取一个值 android
- powershell - Powershell 从日志文件中提取 TCP 端口以更新防火墙规则
- r - 来自两个小标题的ggplot;背景为等高线的散点图
- flutter - 如何制作一个类来存储静态颜色?
- powershell - 适用于 Microsoft Word、Excel、Powerpoint 的 PowerSTIG?
- python - 将 sas7bdat 文件上传到 Python
- github - 在 github 问题中嵌入大型或非标准文件
- angular - 从 firebase 获取文档并访问函数返回的数据
- floating-point - Common Lisp 中浮点数的字节表示