Я новичок в селене (но опытный разработчик Java).
Я использую что-то вроде ниже:
WebElement searchBasket = pDriver.findElement(By.xpath("//a[contains(.,'Search&Baskets')]"));
WebElement searchproduct = pDriver.findElement(By.xpath("//a[contains(.,'Search a product')]"));
//if search an agreement is not show up, then click on other menu, then click it back
pWait.until(ExpectedConditions.elementToBeClickable(By.xpath("//a[contains(.,'Search&Baskets')]")));
pDriver.findElement(By.xpath("//a[contains(.,'Search&Baskets')]")).click();
// click on search an agreement
try {
pWait.until(ExpectedConditions.elementToBeClickable(By.xpath("//a[contains(.,'Search&Baskets')]")));
action = new Actions(pDriver);
action.moveToElement(searchBasket).build().perform();
pWait.until(ExpectedConditions.elementToBeClickable(By.xpath("//a[contains(.,'Search a product')]")));
searchproduct.click();
} catch (TimeoutException e) {
}
где pWait:
WebDriverWait wait = new WebDriverWait(driver, 15);
однако, когда я запускаю тестовый пример, я получаю ошибку ниже:
Unable to locate element: {"method":"xpath","selector":"//a[contains(.,'Search&Baskets')]"}
Command duration or timeout: 4 milliseconds
Я думал, что ему нужно подождать как минимум 15 секунд, прежде чем генерировать это исключение. Из журнала выше похоже, что исключение было сгенерировано только через 4 мс. и я мог видеть на консоли, что как только он попадал в эту строку, он генерировал исключение.
У меня неявное ожидание установлено как 0 и используется явное ожидание.
Я что-нибудь упустил?
Кроме того, в явном и неявном ожидании, это столько времени ИЛИ точно столько времени, например, если я установил неявное ожидание как 10 секунд, то означает ли это ждать точных 10 секунд ИЛИ ждать до 10 секунд (если элемент найден, продолжайте , даже если элемент упал на 6-й секунде)
то же самое и для явного ожидания?
Пожалуйста помоги