WebDriverWait w = new WebDriverWait(driver, 10);
w.until(ExpectedConditions.visibilityOfElementLocated(By.linkText("Credit Card")));
Ссылка "Кредитная карта" - это вкладка пользовательского интерфейса. Я не могу нажать на ссылку. Я получаю ссылку Stale Element Reference Exception
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>
Вы должны размещать идентификаторы на этих основных элементах пользовательского интерфейса для целенаправленного тестирования селена. Глядя в DOM для текста ссылки, не является хорошей практикой и может вызвать нестабильность в ваших тестах. Попробуйте добавить идентификаторы и найти элемент по идентификатору.