Я работаю в 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
и использовать другой?