[Selenium] Как вызвать переопределенные методы для веб-элементов? - PullRequest
0 голосов
/ 29 мая 2018

Я создал один метод переопределения (click() метод) в классе BaseElement, который реализуется из интерфейса WebElement.

Я хотел бы вызывать этот переопределенный метод для всех веб-элементов, где это применимо.

WebElement ele = driver.findElement(By.id("button")); // он возвращает тип webelement по умолчанию

Как я могу вызвать мой метод переопределения click() для вышеуказанного веб-элемента?

Я пытался с приведением элемента down к BaseElement, как показано ниже:

BaseElement m_ele = (BaseElement) ele; // Нет ошибки компиляции, но выдает исключение приведения класса во время выполнения

Любая идея может помочь мне здесь для вызова переопределенного click() метода в WebElement?Я не хочу использовать встроенный click() метод WebElement.

Дайте мне знать, если мне потребуется предоставить какую-либо дополнительную информацию?

Вот мой фрагмент кода:

public class BaseElement implements WebElement {

public BaseElement(WebElement element) {
        m_element = element;
}

@Override
    public void click() {
        try {
            m_element.click();
        } catch (WebDriverException e) {
            try {
                logger.debug("Click Failed, Attempting to click by scrolling into view with bottom align option");
                scrollIntoView();
                m_element.click();
            } catch (WebDriverException ef) {
                try {
                    logger.debug("Click Failed, Attempting to click by scrolling into view with top align option");
                    scrollIntoView(true);
                    m_element.click();
                } catch (WebDriverException e2) {
                    try {
                        logger.debug("Click Failed, Attempting to click by scrolling down by 200 pixels");
                        m_jsDriver.executeScript("window.scrollBy(0,200)");
                        m_element.click();
                    } catch (WebDriverException e3) {
                        logger.debug("Click Failed, Attempting to click by scrolling up by 200 pixels");
                        m_jsDriver.executeScript("window.scrollBy(0,-200)");
                        m_element.click();
                    }
                }
            }
        }
    }
}

1 Ответ

0 голосов
/ 29 мая 2018

Вы можете попробовать следующий код для использования метода перебранных кликов.

WebElement ele = driver.findElement(By.id("button")); 
BaseElement m_ele = new BaseElement(ele);
m_ele.click();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...