Java 仅针对WebElement模拟WebDriverWait

Java 仅针对WebElement模拟WebDriverWait,java,selenium,Java,Selenium,我已经找到了使用next构造的元素 WebDriverWait wait = new WebDriverWait(driver, 10); WebElement wsearchlist = wait.until(ExpectedConditions.elementToBeClickable(By.xpath(""))); 之后,我想寻找内部元素 By by = new By.ByLinkText(testName); wsearch = wsearchlist.findElement(by);

我已经找到了使用next构造的元素

WebDriverWait wait = new WebDriverWait(driver, 10);
WebElement wsearchlist = wait.until(ExpectedConditions.elementToBeClickable(By.xpath("")));
之后,我想寻找内部元素

By by = new By.ByLinkText(testName);
wsearch = wsearchlist.findElement(by);
此行为不尝试等待内部元素的可用性。我想使用相同或类似的东西来等待对象搜索一个元素,然后再搜索另一个元素。如何实现这一点?

除按对象和WebElement对象作为输入外,您还可以等待此元素显示并可单击,如下所示:-

wait.until(ExpectedConditions.elementToBeClickable(wsearch));
By by = new By.ByLinkText(testName);
WebElement wsearch = wait.until(ExpectedConditions.presenceOfNestedElementLocatedBy(wsearchlist, by));
如果要等待嵌套元素,请尝试使用expect WebElement和By object等待,直到WebElement上下文中DOM上出现元素,如下所示:-

wait.until(ExpectedConditions.elementToBeClickable(wsearch));
By by = new By.ByLinkText(testName);
WebElement wsearch = wait.until(ExpectedConditions.presenceOfNestedElementLocatedBy(wsearchlist, by));

希望对您有所帮助……:

您可以使用WebDriverWait参考创建一个自定义函数来帮助完成此过程

提供的代码示例未经测试


我使用这个命令来获取元素。如果在JS中添加了内容,那么应该等待。我没有..@YevgenKulik的元素,那么你应该使用presenceOfNestedElementLocatedBy。。请参阅更新的答案