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

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

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

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

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

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

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

Есть ли у вас какие-либо идеи проблемы, почему это не работает? Спасибо.


person Louloupi94    schedule 17.08.2018    source источник
comment
Реальная проблема, я думаю, заключается в том, что вы должны использовать передачу вместо передачи в вашем partialLinkText.   -  person Shivam Mishra    schedule 17.08.2018
comment
linkText и атрибут href не одно и то же!   -  person SiKing    schedule 18.08.2018


Ответы (3)


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

  • linkText:

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

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

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

Изменить Transfer на My transfer

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

ИЛИ Измените Transfer на transfer

@FindBy(partialLinkText="transfer")
WebElement transferBtn;
person Sodium    schedule 17.08.2018

Я надеюсь, что это сработает

@FindBy(xpath = "//a[text()='My transfer']");
WebElement Transferbtn;
person Dixit_Autobot    schedule 17.08.2018