Исключение ссылки на устаревший элемент веб-драйвера Selenium для пользовательского интерфейса с вкладками

0
WebDriverWait w = new WebDriverWait(driver, 10);
w.until(ExpectedConditions.visibilityOfElementLocated(By.linkText("Credit Card")));

Ссылка "Кредитная карта" - это вкладка пользовательского интерфейса. Я не могу нажать на ссылку. Я получаю ссылку Stale Element Reference Exception
Изображение 174551
Html

<div class="paymnt_nav" ng-show="$parent.mobileInfo.isMobile==false || closePaymentMode != true">
  <ul>
    <li class="ng-hide"
        ng-click="viewParams.webPaymentTabs='SC';resetCards('');removeBinOffer(true,true);checkOffer('storedCard',paymentMerchant.storeCardDTOList[0].cardToken,0,'',true);storeCardSelect();"
        ng-show="viewParams.savedCards==true">

    <li class="ng-scope"
        ng-if="paymentMerchant.paymentOption.cc !='-1' && paymentMerchant.paymentOption.cc !=null">
      <a class="''"
         ng-class="{'active':viewParams.webPaymentTabs=='CC','':viewParams.webPaymentTabs!='CC'}" 
         ng-click="$parent.closePaymentMode = true;viewParams.webPaymentTabs='CC';paymentObject.paymentType='CC';resetCards('creditcard');removeBinOffer(true,true);handleSpecificConvenienceFee();_handlingCashBackScenario({})">
    </li>

    <li class="ng-scope" 
        ng-if="paymentMerchant.paymentOption.db !='-1' && paymentMerchant.paymentOption.db !=null">

    <li class="ng-scope"
        ng-click="$parent.closePaymentMode = true;viewParams.webPaymentTabs='NB';paymentObject.paymentType='NB';resetCards('netbanking');removeBinOffer(true,true);autoSelectNetBanking();_handlingCashBackScenario({});checkForNBStatus();" 
        ng-if="paymentMerchant.paymentOption.nb !='-1' && paymentMerchant.paymentOption.nb !=null">

    <li class="ng-scope" ng-if="paymentMerchant.loyltyEnabled==true">
  </ul>
</div>
  • 0
    Можете ли вы опубликовать HTML-код часть этого div? Также вы пытались увеличить время ожидания? как 30, 60 секунд?
  • 0
    где linktext href для кредитной карты? в HTML?
Показать ещё 4 комментария
Теги:
selenium-webdriver

1 ответ

0

Вы должны размещать идентификаторы на этих основных элементах пользовательского интерфейса для целенаправленного тестирования селена. Глядя в DOM для текста ссылки, не является хорошей практикой и может вызвать нестабильность в ваших тестах. Попробуйте добавить идентификаторы и найти элемент по идентификатору.

  • 0
    Невозможно добавить какие-либо идентификаторы, так как это HTML-страница, посвященная оплате
  • 0
    Таким образом, вы пишете тесты для сторонней функциональности? Ваша граница тестирования всегда должна заканчиваться только передачей любой третьей стороне.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню