无论我使用什么定位器,我都无法使用 Selenium 单击此按钮

I cannot click on this button using Selenium no matter what Locator I use

无论我使用什么定位器,我都无法点击这个按钮,我无法理解为什么。我使用了 linkText、partialLinkText、x-path、className 等。我在页面对象模型设计模式中使用了 PageFactory。

这是 div 按钮的代码:

<div class="clearfix main-page-indent">
<a href="http://automationpractice.com/index.php?controller=address" title="Add an address" class="btn btn-default button button-medium">.   <span>Add a new address<i class="icon-chevron-right right"></i></span></a>
</div>

这里是link源代码: 查看源代码:http://automationpractice.com/index.php?controller=addresses

您只需要先创建一个帐户,超级快。

以下是我尝试过的两种方法:

1.)

//Page Factory
@FindBy(how = How.PARTIAL_LINK_TEXT, using = "Add an address")
WebElement newAddressBtn;

public AddNewAddressPage clickAddNewAddressBtn() {
    newAddressBtn.click();
    return new AddNewAddressPage();
}

2.)

@FindBy(xpath = "//a[@href='http://automationpractice.com/index.php?controller=address']")
WebElement newAddressBtn;

有人知道如何合并此定位器吗?

感谢您的帮助!

能否尝试在 xpath 下定位您的元素?

    @FindBy(xpath = ".//*[@id='center_column']/div[2]/a")
    public WebElement addressNew;

感谢您的建议,但我发现了我的错误。并不是无法解析定位器,而是我遇到了一个空指针异常,因为我未能初始化我的 PageFactory 变量。我添加了这个构造函数来解决这个问题。这样,当页面 class 被实例化时,所有 WebElements 都将被初始化。

public MyAddressesPage() {
    PageFactory.initElements(driver, this);
}