Как ждать, пока атрибут не будет иметь другое значение? - PullRequest
0 голосов
/ 18 января 2020

Когда у нас нет ожидания на экране

<div id="divWait" style="cursor: wait; position: absolute; left: 0%; top: 0%; background: transparent; padding: 3px; width: 100%; height: 100%; display: none;">

Но когда часть ожидания продолжается, часть отображения исчезает, поэтому она становится:

<div id="divWait" style="cursor: wait; position: absolute; left: 0%; top: 0%; background: transparent; padding: 3px; width: 100%; height: 100%;">

фрагментом я добавил:

WebDriverWait w =new WebDriverWait(driver,10);
w.until(ExpectedConditions.invisibilityOfElementLocated(By.xpath("div//[@id='divWait']").getAttr‌ibute("disabled")));

но это не сработало

Ответы [ 2 ]

0 голосов
/ 19 января 2020

Кажется, вы были близки. Чтобы дождаться, когда свойство display: none будет удалено из атрибута style вместо ExpectedConditions как invisibilityOfElementLocated(), вам нужно вызвать WebDriverWait для visibilityOfElementLocated() и вы можете использовать любую из следующих Стратегий локатора :

  • cssSelector:

    WebElement element = new WebDriverWait(driver, 10).until(ExpectedConditions.visibilityOfElementLocated(By.cssSelector("div#divWait")));
    
  • xpath:

    WebElement element = new WebDriverWait(driver, 10).until(ExpectedConditions.visibilityOfElementLocated(By.xpath("//div[@id='divWait']")));
    
0 голосов
/ 18 января 2020

Можно подождать, пока атрибут display не появится

WebDriverWait wait = new WebDriverWait(driver,60);

wait.until(new ExpectedCondition<Boolean>() {   
boolean isAttributeNotPresent= false;
    public Boolean apply(WebDriver driver) 
{
        WebElement button = driver.findElement(By.id("divWait"));

if(button.isDisplayed()
{

try{
        button.getAttribute("display");
} 
catch(Exception e)
 {
isAttributeNotPresent= true;
return isAttributeNotPresent;
}}
}});

Примечание. Игнорировать синтаксическую ошибку при вводе с клавиатуры мобильного телефона

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