我在Java中使用Webdriver,我需要等待一个具有动态ID的元素出现在web页面上。
例如,对于隐式等待,我有以下语句: WebDriverWait wait =新WebDriverWait(驱动程序,30);
dynamicID是我正在等待的元素ID的前缀,通常它带有一个我无法真正预测的数字。
这里有一些好的答案,Finding an element by partial id with Selenium in C#。
我试图将我的代码更改为
wait.until(ExpectedConditions.visibilityOfElementLocated(By.id(^="dynamicID")))而且它不起作用。
我试着使用页面工厂:
@FindBy(id ^= "dynamicID")
private WebElement something;而且它也不起作用。
因此,我不得不问: 1.如何在隐式等待语句中使用ID部分匹配? 2.如果我使用页面工厂,并假设@FindBy工作正常,那么如何在隐式等待中使用这个元素something?
wait.until(ExpectedConditions.visibilityOfElementLocated(something)) 不管用。
提前谢谢。
发布于 2013-11-14 09:05:24
可以对id使用部分匹配,但必须使用xpath或css选择器。
wait.until(ExpectedConditions.visibilityOfElementLocated(By.CssSelector("tag[id^='dynamicID']")))其中tag是元素的标记。
https://stackoverflow.com/questions/19968877
复制相似问题