【问题标题】:Selenium Java class annotations for Page Object页面对象的 Selenium Java 类注释
【发布时间】:2021-02-03 01:15:03
【问题描述】:

你能帮我处理页面对象模式中的类(页面)注释吗? 例如:我在上部菜单和页脚中有“联系人”WebElement。使用相同的定位器。 我知道,我可以用一些注释和 UpperMenu.class 来注释 Footer.class,我也可以在其中放置整个页面的选择器。测试将首先检查页面选择器,然后检查元素选择器。它会像:“footer_page_selector”+“contacts”=“footer_page_contacts”

我是否也可以对类使用@FindBy 注释?

@Annotation(css= .footer)
class Footer {
    @FindBy(xpath="//a[contains(@title, contact)]") private WebElement contact;
}


@Annotation(css= .upper_menu)
class UpperMenu{
    @FindBy(xpath="//a[contains(@title, contact)]") private WebElement contact;
}

【问题讨论】:

  • 你能添加一些你想要的伪代码吗?
  • 当然。添加到我的帖子中

标签: java selenium annotations


【解决方案1】:

默认情况下,Selenium 不提供此类功能。您可以在这里使用两个选项:

  1. 使用一些 Selenium 包装器,例如 yandex-qatools/htmlelements(参见他们 GH 页面上的示例)

  2. 拥有一个将页眉和页脚存储为字段的页面对象(假设它的名称为CommonParts)。然后,您可以使用相同的页面类在页脚或页眉中启动针对“联系人”的页面对象。创建实例时,您使用CommonParts 的相应字段作为搜索上下文。在这种情况下,您将需要您的“联系人”定位器是相对的(即在 xPath 情况下,它可以从 ./ 开始)。更详细的解释见here

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-02-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-07-19
    • 1970-01-01
    相关资源
    最近更新 更多