Программа Java Selenium ChromeDriver работает быстро на моей машине, но медленно на других машинах - PullRequest
3 голосов
/ 08 июля 2019

Я написал Java-программу, которая использует Selenium для управления Google Chrome. Если я запускаю программу на своем компьютере, она работает правильно и с разумной скоростью. Однако, когда я экспортирую этот файл на другой компьютер (в формате .jar или .exe), он все равно работает правильно, но работает очень медленно. В частности, кажется, что для написания текстовых полей и нажатия кнопок требуется гораздо больше времени.

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

/**
 * This function allows the driver to wait until the element is visible before interacting with it 
 * @param driver - The driver that is being used
 * @param webElement - A string describing the xpath of the element to wait for 
 * @param seconds - The maximum number of seconds that the driver is willing to wait
 * @return - The WebElement after it has appeared on the page 
 */
public static WebElement waitForElementToBeVisible(WebDriver driver, String webElement, int seconds) {
    try {
        WebDriverWait wait = new WebDriverWait(driver, seconds);

        WebElement element = wait.until(ExpectedConditions.visibilityOfElementLocated(By.xpath(webElement))); 

        return element;
    } 
    catch (TimeoutException e){
        return null; 
    }

}

И я вызываю этот метод, чтобы убедиться, что кнопка активна перед вызовом действия:

/**
 * This function allows the driver to wait until the element is clickable before interacting with it 
 * @param driver - The driver that is being used 
 * @param webElement - A string describing the xpath of the element to wait for 
 * @param seconds - The maximum number of seconds that the driver is willing to wait
 * @return - The WebElement after it has appeared on the page 
 */
public static WebElement waitForElementToBeClickable(WebDriver driver, String webElement, int seconds) {
    WebDriverWait wait = new WebDriverWait(driver, seconds); 

    WebElement element = wait.until(ExpectedConditions.elementToBeClickable(By.xpath(webElement)));

    return element; 
}

Из моих исследований я попытался решить проблему различными способами. Сначала я попытался настроить параметры прокси через Google Chrome, но на обеих машинах настройки были одинаковыми. Во-вторых, я попытался установить параметры прокси программно, но это также не ускорило программу. Наконец, я попытался сократить время, которое передается описанным выше методам. К сожалению, это не ускорило программу. Кто-нибудь знает, как обеспечить одинаковую производительность программ Java Selenium на каждой машине?

Заранее благодарим за любую помощь, которую вы можете оказать.

...