Получение драйвера браузера / класса DriverFactory.getWebDriver () - PullRequest
0 голосов
/ 23 января 2020

Я работаю в IntelliJ IDEA и пытаюсь создать класс DriverFactory с функцией getWebdriver.

Я создал функцию ChromeRunner, которую я использую для открытия браузера и перейдя по ссылке, после этого я сделал еще одну функцию для получения элементов, например: LandingPage class. Там я использую WebElement, чтобы получить класс ChromeRunner: класс ChromeRunner

{
    def static runChrome() {
        System.setProperty("webdriver.chrome.driver", PATH + "chromedriver.exe")
        ChromeOptions options = new ChromeOptions()

        options.setExperimentalOption("useAutomationExtension", false)

        WebDriver driver = new ChromeDriver(options)
        def url = "https://www.google.com"
        driver.get(url)
        driver.manage().window().maximize()
    }
}

Класс DriverFactory:

class DriverFactory {
    public static WebDriver getWebDriver() {
        String browser = System.getenv("BROWSER")
        if(browser == null) {
            ChromeDriverManager.chromedriver().setup()
            return new ChromeDriver()
        }
        switch (browser) {
            case "IE":
                InternetExplorerDriverManager.iedriver().setup()
                return new InternetExplorerDriver();
            case "FIREFOX":
                FirefoxDriverManager.firefoxdriver().setup()
                return new FirefoxDriver();
            default:
                ChromeDriverManager.chromedriver().setup()
                return new ChromeDriver();
        }
    }
}

, и это мой метод для получения элемента:

def static getWelcomeText() {
        List<WebElement> element = DriverFactory.getWebDriver().findElements(By.xpath("//*[@id=\"mainLoadingLayer\"]/ui-view/div/div/div[1]/div[1]/div/form/h1"))
        def returnText = element.get(0).getText()
        return returnText
    }

Я хочу как-то использовать findElements с полученным драйвером, поэтому я создал DriverFactory.getWebDriver(). Но, когда я выполняю его, он выдает мне сообщение об ошибке:

Exception in thread "main" io.github.bonigarcia.wdm.WebDriverManagerException: org.apache.http.conn.HttpHostConnectException: Connect to chromedriver.storage.googleapis.com:443 [chromedriver.storage.googleapis.com/216.58.206.208] failed: Connection timed out: connect

at Main.main(Main.groovy:15)
Caused by: org.apache.http.conn.HttpHostConnectException: Connect to chromedriver.storage.googleapis.com:443 [chromedriver.storage.googleapis.com/216.58.206.208] failed: Connection timed out: connect

, так как я понял, что он не может подключиться к API, но по следующей ссылке: chromedriver.storage.googleapis.com , У меня есть доступ.

Кроме того, вместо использования DriverFactory.getWebDriver() я использовал: WebDriver driver = new ChromeDriver(), но он всегда открывает другой сеанс chrome, который я не хочу.

Есть ли другой способ выяснить, не использовать ли мой реализованный класс DriverFactory и использовать другой?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...