Я не могу нажать на эту кнопку, используя Selenium, независимо от того, какой локатор я использую - PullRequest
0 голосов
/ 03 октября 2018

Я не могу нажать на эту кнопку, независимо от того, какой локатор я использую, и мне трудно понять, почему.Я использовал linkText ,partalLinkText, x-path, className и т. Д. Я использую PageFactory в шаблоне проектирования Page Object Model.

Вот код для 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>

Вот ссылка на исходный код: view-source: http://automationpractice.com/index.php?controller=addresses

Youсначала нужно создать учетную запись, это очень быстро.

Вот два метода, которые я попробовал:

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;

Кто-нибудь знает, как закрепить этот локатор?

Спасибо за помощь!

Ответы [ 2 ]

0 голосов
/ 03 октября 2018

спасибо за ваши предложения, но я нашел свою ошибку.Не то, чтобы локатор не мог быть разрешен, скорее, я получал исключение нулевого указателя, потому что мне не удалось инициализировать мои переменные PageFactory.Я добавил этот конструктор, чтобы исправить проблему.Таким образом, когда создается экземпляр класса страницы, все WebElements будут инициализированы.

public MyAddressesPage() {
    PageFactory.initElements(driver, this);
}
0 голосов
/ 03 октября 2018

Можете ли вы попробовать ниже xpath, чтобы найти свой элемент?

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