Время ожидания элемента Selenium net.serenity.bdd.core.exceptions.SerenityManagedException истекло - PullRequest
0 голосов
/ 18 сентября 2018

У меня проблемы с выбором кнопки radio в этой форме:

<form _ngcontent-c4="" novalidate="" class="ng-untouched ng-pristine ng-invalid"> 
   <div _ngcontent-c4="" class="text-center">
      <div _ngcontent-c4="" class="row mt-3">
        <div _ngcontent-c4="" class="col-sm-12">
          <h1 _ngcontent-c4="">Place of birth?</h1>
        </div>
      </div>
      <div _ngcontent-c4="" class="row mt-3">
        <div _ngcontent-c4="" class="col-md-6">
           <div _ngcontent-c4="" class="live-box">    
              <div _ngcontent-c4="" class="row">
                 <div _ngcontent-c4="" class="col-sm-12">
                    <div _ngcontent-c4="" class="form-check">
                        <input _ngcontent-c4="" class="form-check-input ng-untouched ng-pristine ng-invalid" id="city1" name="live" required="" type="radio" value="City">
                        <label _ngcontent-c4="" class="form-check-label" for="materialInline1"></label>
                    </div>
                </div>
            </div>
            <div _ngcontent-c4="" class="row">
              <div _ngcontent-c4="" class="col-sm-12">
                <div _ngcontent-c4="" class="img city-img"></div>
               </div>
             </div>
             <div _ngcontent-c4="" class="row mt-10">
                <div _ngcontent-c4="" class="col-sm-12"><p _ngcontent-c4="" class="title1 mb-0">Small city</p>
                <p _ngcontent-c4="" class="small-text1">My home</p>
             </div>
          </div>
       </div>
    </div>
</form>

Когда я объявляю WebElement следующим образом:

@FindBy(id="city1")
private static WebElement cityRadioButton;

, а затем:

waitFor(cityRadioButton);
cityRadioButton.click() - the element cannot be located.

Когда изображение со встроенной радиокнопкой не выбрано, класс выглядит следующим образом:

form-check-input ng-untouched ng-pristine ng-invalid

Когда радиокнопка выбирается в пользовательском интерфейсеимя класса обновляется до:

form-check-input ng-untouched ng-valid ng-dirty.

Будем весьма благодарны за любые подсказки или помощь по решению этой проблемы.

1 Ответ

0 голосов
/ 18 сентября 2018

Вы можете попробовать с этим кодом:

city1 может быть динамическим id , вы можете попробовать с данным селектором css:

@FindBy(css="input[value='City'][name='live']")
private static WebElement cityRadioButton;  

waitFor(cityRadioButton);
cityRadioButton.click();
...