【问题标题】:How to check with Selenium if a row of a scrolled table is visible on the screen?如果屏幕上可以看到一行滚动表,如何使用 Selenium 检查?
【发布时间】:2016-11-08 19:41:36
【问题描述】:

我有一个不是用tdtr 标签构建的表,但每一行都是一个div(可能以某种方式用css 制作)

只有屏幕上可见的行和更多的行在 DOM 中呈现。

例如:如果第 7,8,9 行在屏幕上可见,那么在 DOM 上我将看到行:4,5,6,7,8,9

例如,当我滚动到第 13、14、15 行时,我将在 DOM 中看到第 11、12、13、14、15、16 行。第 4、5、6、7、8、9 行不再存在。

我的问题是如何使用 Selenium 检查屏幕上当前是否可见一行?

我在 WebDriver 的 API 中找不到东西,也许 Selenium 的类 JavascriptExecutor 有更底层的方法?

【问题讨论】:

  • 你能给我们展示一下 html 对于 DOM 中的行的样子吗?我的猜测是,“可见”行上会有一些样式,可以直接用 Selenium 识别它们。
  • 使用 element.getAttribute("style") 检查样式属性。检查它在可见性部分中包含的内容。还有 element.gtCssValue("display") 获取可见度值。

标签: java selenium webdriver html-table


【解决方案1】:

定位行元素(例如使用 css 定位器),然后找出是否可见:

WebElement webElement = webDriver.findElement(By.cssSelector("..."));
boolean isDisplayed = webElement.isDisplayed();

【讨论】:

  • 我认为 isDisplayed 检查 DOM 中的特定类或属性。正如我所说,我在 DOM 中只有可见行和更多行,没有可以区分可见行和不可见行的类或属性
猜你喜欢
  • 1970-01-01
  • 2020-09-19
  • 1970-01-01
  • 2019-02-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-01-26
  • 2021-11-29
相关资源
最近更新 更多