我已经使用@FindBy
了一段时间了,我喜欢这样一个事实,即元素只有在必要时才会被定位(而不是在实例化时)。
但是,网页可能有 2-10 个特定元素,并且元素上的 id 被编号(因此第一个元素的 id 为“element1”,依此类推)
我想编写一个可以传入整数的函数,它将返回一个具有适当 ID 的 WebElement,并且被延迟实例化。这意味着具有以下功能将不起作用:
public WebElement getElement(int numOnPage){
return driver.findElement(By.id("element"+numOnPage));
}
因为在我调用该函数的那一刻,WebElement 就被定位了。(它不能被实例化的原因是因为我有一个函数,它通过反复调用 isDisplayed() 来等待元素存在,捕获NoSuchElementException
s)。
我也意识到我可以创建一个List<WebElement>
通过 CSS 选择 ID 以“元素”开头的每个元素的方法,但我遇到过其他情况,我想返回一个动态生成的元素,并且也必须在那里使用解决方法。
谢谢!