【问题标题】:How does Selenium Annotation "@FindBy" work when it returns no element?Selenium 注释“@FindBy”在不返回任何元素时如何工作?
【发布时间】:2018-09-17 07:36:34
【问题描述】:

如果@FindBy 没有返回任何元素,我们是否会收到错误,因为我看到@FindBy 可以用于获取多个元素的 0。

场景: @FindBy(id = "btn") 私有 WebElement 搜索按钮; //允许引用单个元素

案例 1:如果我们没有 id 为“btn”的元素,那么结果会是什么? 案例2:如果我们有多个id为“btn”的元素,结果会是什么?

请澄清。

【问题讨论】:

标签: selenium findby


【解决方案1】:

调用PageFactory.initElements 时不会收到错误,未找到的元素将设置为null。但是,当您尝试使用该元素时,您会得到NullPointerException

【讨论】:

    【解决方案2】:

    案例 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
    

    【讨论】:

    • 请不要通过多个部分发布问题的答案。而是在单个答案空间中发布您自己的答案。
    • 我已经用你答案的第二部分更新了这个答案。
    猜你喜欢
    • 2013-05-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-10-10
    • 2021-11-09
    相关资源
    最近更新 更多