Как использовать Protractor / WebDriverJS, чтобы проверить, отображается ли элемент без ожидания?
Как использовать транспортир, чтобы проверить, видим ли элемент без ожидания? Я из Java + WebDriver фона и новичок в Protractor. В Java я использовал следующее решение. Я ищу похожую функциональность.
Дополнительная информация: В настоящее время, если я использую isDisplayed(), WebDriver будет ждать, пока элемент не станет видимым (если он еще не отображен). Я хочу получить статус видимости без ожидания.
protected void turnOffImplicitWaits() {
driver.manage().timeouts().implicitlyWait(0, TimeUnit.SECONDS);
}
protected void turnOnImplicitWaits() {
driver.manage().timeouts().implicitlyWait(StartupConstants.TIMEOUT, TimeUnit.SECONDS);
}
protected boolean isElementHiddenNow(By by) {
turnOffImplicitWaits();
boolean result = ExpectedConditions.invisibilityOfElementLocated(by).apply(driver);
turnOnImplicitWaits();
return result;
}
1 ответ
Если вы не хотите никаких ожиданий по умолчанию при проверке видимости элемента, сделайте одно: просто выполните любую операцию, например, click() для целевого элемента, и добавьте функцию then() с двумя функциями в качестве параметров - одна для успеха, а другая за неудачу. Вы следуете за кодом ниже:
var targetElement=element(locator);
targetElement.click()
.then(function(toBeCalledWhenSuccess) { // fulfillment },
function(reasonForRejection) { // rejection }
);
Добавьте код ниже в Conf.js
jasmineNodeOpts: {
// Default time to wait in ms before a test fails.
defaultTimeoutInterval: 0,
}