Перейти к содержимому

igorek9191

Регистрация: 04 апр 2015
Offline Активность: 22 июл 2023 07:34
-----

Мои темы

Помогите настроить подключение к postgresql через SSH в Java

01 сентября 2019 - 09:57

Всем привет!
На нашем проекте используется postgresql база данных в Амазоне - Amazon RDS
Через pgAdmin мы подключаемся с настройкой SSH tunnel, где указываем tunnel host, port, name и путь к приватному ssh ключу.
А также в connection, указываем адрес БД, порт, имя БД, пользователя, пароль.
Вопрос - как сделать это подключение из кода Java ?
Если есть знающие люди пожалуйста подскажите, или дайте ссылку на работающий пример.
Спасибо!


Как вернуть объект страницы из generic метода

29 декабря 2018 - 12:29

Всем привет.

Давно хотел создать метод generic типа, так сказать освоить работу с дженериками. Использую Selenide.

В итоге, написал метод, открывающий страницу в новой вкладке и возвращающий объект этой страницы

@Step("Открываем новую страницу по ссылке {0} и возвращаем объект страницы {1}")
    public static <T extends PageBase> T openPageInNewTab(String url, Class<T> page) {

        Selenide.executeJavaScript("window.open('"+url+"','_blank');");

        switchTo().window(getWebDriver().getWindowHandles().size()-1);

        new WebDriverWait(getWebDriver(), 20)
            .until(webDriver -> ((JavascriptExecutor) webDriver).executeScript("return document.readyState").equals("complete"));

        sleep(5000);//без этого слипа поля нового объекта page будут null

        try {
            return page.newInstance();
        } catch (InstantiationException | IllegalAccessException ex) {
            throw new RuntimeException("Не получилось создать объект страницы " + page.getSimpleName());
        }
    }

Проблема моя заключается в том, что без sleep(5000), все поля возвращаемого объекта page будут null. Хотелось бы избавиться от слипа. Гуглил, и находил на этом форуме такой конструктор класса, для инициализации элементов страницы
 

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

Вопрос теперь: как вызвать этот конструктор в моём методе ? или есть другой способ инициализации элементов загруженной страницы ? Спасибо