无论我使用什么定位器,我都无法使用 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);
}
无论我使用什么定位器,我都无法点击这个按钮,我无法理解为什么。我使用了 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);
}