Оцените немедленно, если элемент невидим, используя Selenium AjaxElementLocatorFactory

Используя Selenium, у меня есть объекты страницы, реализованные с помощью AjaxElementLocatorFactory PageFactory.

Если я пытаюсь проверить невидимость элемента на странице, он всегда ожидает истечения времени ожидания, определенного в конструкторе. Есть ли способ немедленно оценить условие, если элемент невидим на странице, минуя время по умолчанию timeOutInSeconds, определенное в конструкторе?

На самом деле я пытаюсь убедиться, что элемент сообщения об ошибке отсутствует для определенного входного значения.

Я пытался использовать ExpectedConditions для проверки невидимости, но он всегда ждет, пока не истечет время ожидания, определенное в конструкторе.

public class SomeInputFragment {
   @FindBy(css = ".input")
   private WebElement input;

   @FindBy(css = ".error")
   private WebElement error;

   public SomeInputFragment(WebElement parent, WebDriver driver)
   {
      PageFactory.initElements(new AjaxElementLocatorFactory(parent, 5), this);
   }

   public SomeInputFragment typeText(String text)
   {
      input.typeText(text);
      return this;
   }

   public WebElement getError()
   {
      return error;
   }
}

@Test
public void someTest()
{
   SomePage page = new SomePage(driver);
   SomeInputFragment inputFragment = new SomeInputFragment(page.getPageWrapper());
   inputFragment.typeText("Some text");
   // This assertion here waits for 5 seconds as defined in the constructor of SomeInputFragment to evaluate that the error message is displayed or not.
   assertTrue(!inputFragment.getError().isDisplayed());
}

0 ответов

Другие вопросы по тегам