Скрипт иногда получает TimeOutException.Иногда работает нормально - PullRequest
0 голосов
/ 19 мая 2019

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

ChromeOptions options = new ChromeOptions();
    options.addArguments("incognito");
    WebDriver driver = new ChromeDriver(options);

    driver.get("url");

    WebDriverWait wait = new WebDriverWait(driver, 20);


    wait.until(ExpectedConditions.elementToBeClickable(By.id("usernameid")));
    driver.findElement(By.id("usernameid")).sendKeys("632145");

    wait.until(ExpectedConditions.elementToBeClickable(By.id("passwordid")));
    driver.findElement(By.id("passwordid")).sendKeys("1234");


    wait.until(ExpectedConditions.elementToBeClickable(By.xpath(".//button[@type='button']")));
    driver.findElement(By.xpath(".//button[@type='button']")).click();

Скрипт иногда не срабатывает при нажатии кнопки.Я получаю TimeOutException.

Ответы [ 2 ]

1 голос
/ 19 мая 2019

Имеется в виду, просто используйте API "Официант" с большим количеством комбинаций ожидания ..

<dependency>
   <groupId>com.imalittletester</groupId>
    <artifactId>thewaiter</artifactId>
    <version>1.0</version>
</dependency>
0 голосов
/ 20 мая 2019

Здесь вы используете WebDriverWait в течение 20 секунд для каждого элемента без установки ImplicitWait. Если вам нужно определенно подождать 20 секунд для каждого элемента, сначала установите ImplicitWait более чем на 20 секунд, а затем используйте WebDriverWait.

В качестве примечания, ImplicitWait будет применяться только для методов findElement и findElements.

Время ожидания по умолчанию, которое использует селен для поиска элемента, составляет 0 секунд, если мы не настраиваем ImplicitWait. Подробнее об этом можно узнать по этому URL: Значение времени ожидания по умолчанию на селеновом веб-драйвере

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