Не удается запустить драйвер

Вопрос или проблема

Если я закомментирую второй шаг, связанный с chromeDriver, тест пройдет.

среда:

  • репозиторий:qaf-blank-project-maven

  • версия qaf:4.0.0 RC3

  • java: 11

драйвер:

  • driver.name=chromeDriver
  • webdriver.chrome.driver=/Users/admin/Desktop/code/qaf-blank-project-maven/src/test/resources/webdriver/chromedriver
функция: 
Функция: BDD тест
  @Smoke
  Сценарий: BDD
    Учитывая, что я перехожу на страницу поиска
    Затем я открываю браузер и иду на "https://www.baidu.com"

Java шаг:

public class MyStepdefs1 {

    @Given("^navigate to search page$")
    public static void navigateToSearchPage1() {
        System.out.println("тест------");
    }


    @Then("^I open browser go to \"([^\"]*)\"$")
    public void iOpenBrowserGoTo(String url) throws Throwable {
        QAFExtendedWebDriver driver = new WebDriverTestBase().getDriver();
        driver.get("https://www.baidu.com");
    }
}

Результат:

включить группы [Smoke]
 исключить группы: [] Местоположение сценариев:  
Не удалось получить класс com.qmetry.qaf.automation.step.client.TestStepExporter из jar /Users/admin/.m2/repository/com/qmetry/qaf/4.0.0-RC3/qaf-4.0.0-RC3.jar
тест------
26 сен 2024 15:17:39 org.openqa.selenium.manager.SeleniumManager lambda$runCommand$1
ПРЕДУПРЕЖДЕНИЕ: Неудачный ответ (403 Запрещено) для URL https://storage.googleapis.com/chrome-for-testing-public/129.0.6668.70/mac-arm64/chromedriver-mac-arm64.zip
Не удалось создать экземпляр драйвера при первой попытке с тайм-аутом повторной попытки 0 секунд. Вы можете проверить/установить значение 'driver.init.retry.timeout' соответствующим образом, чтобы установить тайм-аут повторной попытки при сбое инициализации драйвера. Не удалось создать экземпляр драйвера для chrome: Не удалось получить: chromedriver, ошибка Команда завершилась с кодом: 65, выполнено: [--browser, chrome, --language-binding, java, --output, json]
Неудачный ответ (403 Запрещено) для URL https://storage.googleapis.com/chrome-for-testing-public/129.0.6668.70/mac-arm64/chromedriver-mac-arm64.zip
Информация о сборке: версия: '4.25.0', ревизия: '8a8aea2337'
Информация о системе: os.name: 'Mac OS X', os.arch: 'aarch64', os.version: '14.6.1', java.version: '11.0.19'
Информация о драйвере: driver.version: ChromeDriver

org.openqa.selenium.TimeoutException: Время ожидания истекло через 0 секунд: Не удалось создать экземпляр драйвера при первой попытке с тайм-аутом повторной попытки 0 секунд. Вы можете проверить/установить значение 'driver.init.retry.timeout' соответствующим образом, чтобы установить тайм-аут повторной попытки при сбое инициализации драйвера.

Похоже, он все равно пытался загрузить webdriver, даже если я указал путь к драйверу с абсолютным путем

Ответ или решение

Проблема, с которой вы столкнулись, связана с тем, что QAF (Qmetry Automation Framework) продолжает пытаться загрузить WebDriver, несмотря на то, что вы указали абсолютный путь к вашему chromedriver. Это может происходить по нескольким причинам. Давайте рассмотрим возможные решения:

1. Убедитесь, что путь к chromedriver указан правильно

Проверьте, что путь /Users/admin/Desktop/code/qaf-blank-project-maven/src/test/resources/webdriver/chromedriver действительно правильный и что файл chromedriver имеет необходимые права на выполнение. Для этого выполните следующую команду в терминале:

chmod +x /Users/admin/Desktop/code/qaf-blank-project-maven/src/test/resources/webdriver/chromedriver

2. Проверьте настройки QAF

Убедитесь, что в вашем проекте правильно настроен драйвер. Вы должны убедиться, что переменные среды корректны и что настройки специфичны для вашего окружения.

3. Отключите автоматическую загрузку драйвера

Если вы не хотите, чтобы QAF загружал chromedriver автоматически, проверьте и установите значение driver.init.retry.timeout в конфигурации QAF. Вы можете это сделать в файле qaf.properties, добавив или изменив следующую строку:

driver.init.retry.timeout=0

Кроме того, попробуйте установить значение disable.driver.auto.download=true, если такая опция есть.

4. Убедитесь в совместимости версий

Проверьте, соответствует ли версия вашего Chrome драйвера версии браузера Chrome, установленному на вашем компьютере. Из-за несовместимости могут возникать ошибки при инициализации драйвера. Если ваш браузер Chrome обновился, необходимо также обновить версию chromedriver.

5. Загрузка драйвера вручную

Если автоматическая загрузка драйвера не сработала, вы можете попробовать загрузить chromedriver вручную с официального сайта ChromeDriver и поместить его в указанный вами путь.

6. Логи и отладка

Если ошибка по-прежнему возникает, внимательно изучите логи, они могут дать дополнительную информацию о причине сбоя. Например, сообщения об ошибках 403 Forbidden указывают на проблемы доступа к ресурсам в сети.

Пример кода

Ваш код по инициализации драйвера также можно немного изменить, чтобы гарантировать, что драйвер создается правильно:

import org.openqa.selenium.chrome.ChromeDriver;
import org.openqa.selenium.chrome.ChromeOptions;
import org.openqa.selenium.WebDriver;

public class MyStepdefs1 {

    private WebDriver driver;

    @Given("^navigate to search page$")
    public void navigateToSearchPage1() {
        System.out.println("test------");
    }

    @Then("^I open browser go to \"([^\"]*)\"$")
    public void iOpenBrowserGoTo(String url) throws Throwable {
        System.setProperty("webdriver.chrome.driver", "/Users/admin/Desktop/code/qaf-blank-project-maven/src/test/resources/webdriver/chromedriver");
        ChromeOptions options = new ChromeOptions();
        driver = new ChromeDriver(options);
        driver.get(url);
        // Закрытие драйвера после теста
        driver.quit();
    }
}

Заключение

После выполнения всех вышеуказанных шагов перезапустите ваши тесты. Если возникли ошибки, их следует анализировать в контексте вашей конфигурации и окружения. Надеюсь, это поможет вам успешно запустить тесты с использованием chromedriver. Если будут дополнительные вопросы, не стесняйтесь обращаться за помощью.

Оцените материал
Добавить комментарий

Капча загружается...