Как я могу проверить, существует ли webelement в Selenium? - PullRequest
1 голос
/ 12 июня 2019

Я хочу создать метод java, который может проверять, существует ли фактический webelement селена.

Важно, что мне нужно создать метод, который бы получал Webelement в качестве параметра, а не By илиИдентификатор строкиИ я хочу избежать решения try-catch, которое возвращало бы false, если возникнет исключение NoSuchElementException.

public boolean isElementExists(WebElement element) {
    //TODO Implement...
}

Пример:

foo.html

<!DOCTYPE html>
<html>
<body>

<button id="button1" type="button">First button</button>

</body>
</html>

FooPage.java

public class FooPage {

    @FindBy(how = How.ID, using = "button1")
    public WebElement fistButton;

    //Missing button
    @FindBy(how = How.ID, using = "button2")
    public WebElement secondButton;

}

FooPageTest.java

public class FooPageTest {
    public void test(FooPage page) {
        page.firstButton.click(); // OK
        page.secondButton.click(); // NoSuchElementException
        //So I need to check if element exists in this class.
        //I can access here to the FooPage, the webelement to check, and to the driver.
    }
}

1 Ответ

2 голосов
/ 12 июня 2019

Поскольку Selenium выдает исключение NoSuchElementException при попытке нажать на вторую кнопку, создайте метод на вашем объекте страницы, который выполняет щелчок:

public class FooPage {
    @FindBy(how = How.ID, using = "button1")
    public WebElement firstButton;

    //Missing button
    @FindBy(how = How.ID, using = "button2")
    public WebElement secondButton;

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

    public void clickThebuttons() {
        firstButton.click();

        try {
            secondButton.click();
        } catch (NoSuchElementException ex) {
            // Do something when the second button does not exist
        }
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...