java - 如何等待页面上滚动的元素

标签 java selenium webdriver

  • 作为用户
  • 当我转到某个页面时
  • 然后有一个元素向下滚动到 View 中

有一个link我要 click在那个元素上。 有时它会起作用,但我如何等待它完成向下滚动,然后 click在元素上?

Thread.sleep(1000)可行,但我想知道有更好的方法吗?

我正在使用的工具:

Java
Selenium 

最佳答案

使用 webdriver 等待元素可见或可单击。尝试以下代码。

WebDriverWait wait = new WebDriverWait(driver, 30);
wait.until(ExpectedConditions.visibilityOfElementLocated(By.id("Id here"))).click();

或者

WebDriverWait wait = new WebDriverWait(driver, 30);
wait.until(ExpectedConditions.elementToBeClickable(By.id("Id here"))).click();

请注意:除了 ID,您还可以放置任何定位器,例如 xpath、class、CSS。我在此处提供了一个 ID 示例。

关于java - 如何等待页面上滚动的元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54689036/

相关文章:

java - Tomcat 应用程序中的幽灵驱动程序

python - 在 Python 中使用 ChromeDriver (Selenium) 通过 CSS 选择器查找元素

regex - Selenium Python 如何使用正则表达式查找字符串值中的 2 位数字

Javac 使用 Selenium 为 Jenkins 编译完整项目

ssl - ChromeDriver 仅打开具有有效 SSL 证书的网站

java - 何时停止在对象中定义 FindBy 并将其移至测试

java - Collection.unmodifiableMap 迭代顺序

java - 如何从 Google Fit REST API 获取总 sleep 时间

java - 表单不会向 servlet 发布任何值

java - 通过套接字接收的字符串在 python 中不进行比较