【发布时间】:2018-09-17 07:36:34
【问题描述】:
如果@FindBy 没有返回任何元素,我们是否会收到错误,因为我看到@FindBy 可以用于获取多个元素的 0。
场景: @FindBy(id = "btn") 私有 WebElement 搜索按钮; //允许引用单个元素
案例 1:如果我们没有 id 为“btn”的元素,那么结果会是什么? 案例2:如果我们有多个id为“btn”的元素,结果会是什么?
请澄清。
【问题讨论】:
如果@FindBy 没有返回任何元素,我们是否会收到错误,因为我看到@FindBy 可以用于获取多个元素的 0。
场景: @FindBy(id = "btn") 私有 WebElement 搜索按钮; //允许引用单个元素
案例 1:如果我们没有 id 为“btn”的元素,那么结果会是什么? 案例2:如果我们有多个id为“btn”的元素,结果会是什么?
请澄清。
【问题讨论】:
调用PageFactory.initElements 时不会收到错误,未找到的元素将设置为null。但是,当您尝试使用该元素时,您会得到NullPointerException。
【讨论】:
案例 1:如果我们没有 id 为“btn”的元素,那么结果会是什么?
org.openqa.selenium.NoSuchElementException: no such element: Unable to locate element: {"method":"name","selector":"<invalid name>"}
案例 2:如果我们有多个 id 为“btn”的元素,那么结果会是什么?
由于我们有多个元素,因此由于模棱两可,我们无法执行任何操作。
org.openqa.selenium.WebDriverException: unknown error: cannot focus element
【讨论】: