Selenium @FindBy linkText или @FindBy partalLinkText не работает

Я работаю для автоматизации, я пытаюсь нажать на элемент, у этого элемента нет идентификатора, имени класса, поэтому я использую xpath. Чтобы улучшить свой код, я хотел бы найти этот элемент по href, поэтому я использую:

@FindBy(linkText="Transfer")
WebElement transferBtn;

Я также попробовал с:

@FindBy(partialLinkText="Transfer")
WebElement transferBtn;

Но мой код не находит webElement, он работает для других href, но не для всех. Я думаю, что проблема в инструментах разработчика, я покажу вам элемент:

<a href="#">My transfer</a>

У вас есть представление о проблеме, почему она не работает? Благодарю.

3 ответа

Решение

В соответствии с HTML, которым вы поделились, вы можете использовать одно из следующих решений:

  • linkText:

    @FindBy(linkText = "My transfer")
    WebElement transferBtn;
    
  • partialLinkText:

    @FindBy(partialLinkText = "transfer")
    WebElement transferBtn;
    
  • xpath:

    @FindBy(xpath  = "//a[contains(.,'My transfer')]")
    WebElement transferBtn;
    

+ Изменить Transfer в My transfer

@FindBy(linkText="My transfer")
WebElement transferBtn;

ИЛИ Изменить Transfer в transfer

@FindBy(partialLinkText="transfer")
WebElement transferBtn;

Надеюсь это сработает

@FindBy(xpath = "//a[text()='My transfer']");
WebElement Transferbtn;
Другие вопросы по тегам