Всплывающее окно не открывается при нажатии кнопки Chrome без головы на Linux - PullRequest
0 голосов
/ 26 ноября 2018

Я автоматизирую один тестовый случай, когда я нажимаю кнопку «Добавить ключ» в сегменте битов и открываю всплывающее окно, как показано на снимке экрана ниже:

enter image description here

Как-то таквсплывающее окно не открывается, когда я запускаю свой скрипт с помощью jenkins на linux AWS.

Я использую Selenium Webdriver, Java, Chrome Headless и Maven.

Вот мои настройки в коде для Chrome без головы:

          HashMap<String, Object> chromePrefs = new HashMap<String, Object>();
            ChromeOptions options = new ChromeOptions();
            options.setExperimentalOption("prefs", chromePrefs);
            DesiredCapabilities cap = DesiredCapabilities.chrome();
            cap.setCapability(CapabilityType.ACCEPT_SSL_CERTS, true);
            cap.setCapability(ChromeOptions.CAPABILITY, options);
            chromePath = System.getProperty("user.dir") + prop.getProperty("chromeDriverPath");
            System.setProperty("webdriver.chrome.driver", chromePath);
            options.addArguments("--headless");
            options.addArguments("--start-maximized");
            options.addArguments("--window-size=1366,768");
            options.addArguments("--no-sandbox");
            options.addArguments("--disable-dev-shm-usage");
            options.addArguments("--disable-gpu");
            options.addArguments("--dns-prefetch-disable");
            options.addArguments("--always-authorize-plugins");
            options.addArguments("enable-automation");
            options.addArguments("--disable-browser-side-navigation");
            options.setPageLoadStrategy(PageLoadStrategy.NONE);
            driver = new ChromeDriver(options);

Я пропустил какой-либо другой аргументчто может помочь мне решить эту проблему?

Html Код кнопки, по которой щелкают и открывают всплывающее окно:

<div class="buttons">
    <button class="aui-button aui-button-primary" id="add-key" resolved="">Add key</button>

  </div>

Снимок экрана Html:

enter image description here

1 Ответ

0 голосов
/ 26 ноября 2018

В соответствии с HTML, которым вы поделились, чтобы вызвать click() для элемента с текстом Добавить ключ , вы можете использовать следующее решение:

  • Кажетсячто некоторые элементы генерируются динамически, в идеале вместо PageLoadStrategy.NONE вам нужно использовать PageLoadStrategy.NORMAL следующим образом:

    options.setPageLoadStrategy(PageLoadStrategy.NORMAL);
    
  • Induce WebDriverWait , чтобы элемент можно было нажимать следующим образом:

    • CSS_SELECTOR:

      new WebDriverWait(driver, 20).until(ExpectedConditions.elementToBeClickable(By.cssSelector("button.aui-button.aui-button-primary#add-key"))).click();
      
    • XPATH:

      new WebDriverWait(driver, 20).until(ExpectedConditions.elementToBeClickable(By.xpath("//button[@class='aui-button aui-button-primary' and @id='add-key'][text()='Add key']"))).click();
      
...