【问题标题】:How to scroll a table that is dynamically populated如何滚动动态填充的表格
【发布时间】:2023-03-10 22:04:01
【问题描述】:

我需要滚动表格以获取使用 selenium 与 java 绑定和 chrome 驱动程序动态填充的表格内容。这是另一个滚动而不是窗口滚动本身。我能找到的所有可用解决方案都是针对窗口滚动的。我在这里需要的是滚动表格。 I need to scroll the one highlighted

页面来源Page Source Screenshot请看第二张截图

非常感谢任何帮助。

我尝试使用以下代码,但无法找到元素

WebElement scroll = driver.findElement(By.xpath("//*[@class='antiscroll-scrollbar antiscroll-scrollbar-vertical antiscroll-scrollbar-shown']"));

scroll.sendKeys(Keys.PAGE_DOWN);

我收到以下错误消息

错误信息: 没有这样的元素:无法定位元素:{"method":"xpath","selector":"//*[@class='antiscroll-scrollbar antiscroll-scrollbar-vertical antiscroll-scrollbar-shown']"}

【问题讨论】:

  • 到目前为止你尝试过什么?您在选择 selenium 中的元素时遇到问题吗?
  • @JohnMercier 我尝试了以下解决方案,但它不起作用。 codeWebElement scroll = driver.findElement(By.xpath("//*[@class='antiscroll-scrollbar antiscroll-scrollbar-vertical antiscroll-scrollbar-shown']")); scroll.sendKeys(Keys.PAGE_DOWN);错误消息:没有这样的元素:无法找到元素:{"method":"xpath","selector":"//*[@class='antiscroll-scrollbar antiscroll-scrollbar-vertical antiscroll-scrollbar-shown']"是的,它无法定位元素
  • 您应该编辑问题并将此信息添加到代码块中。这是获得对您有帮助的答案的最佳方式。
  • @John Mercier 感谢您的反馈。我已经更新了查询。如果您有任何建议,请告诉我。
  • 查看如何格式化问题中的代码的指南。 stackoverflow.com/editing-help#code

标签: java selenium automated-tests selenium-chromedriver


【解决方案1】:

根据经验,我怀疑垂直滚动条的 HTML 类在使用时会发生变化。这意味着添加了一个额外的类标识符(类似于“antiscroll-scrollbar-active”),因此您的 xpath 不再适用并且找不到该元素。尝试使用 Contains 代替,这将通过使用部分而不是完整的类匹配来避免该问题。

例如

//*[contains(@class, 'antiscroll-scrollbar antiscroll-scrollbar-vertical')]

【讨论】:

    猜你喜欢
    • 2022-12-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-02-22
    • 2012-09-16
    • 1970-01-01
    相关资源
    最近更新 更多