2015-11-04 83 views
0
WebDriverWait w = new WebDriverWait(driver, 10); 
w.until(ExpectedConditions.visibilityOfElementLocated(By.linkText("Credit Card"))); 

鏈接「信用卡」是一個用戶界面選項卡。 我無法點擊鏈接。 我會過時元素參考異常
enter image description here
的Html硒網頁驅動程序陳舊的元素參考例外標籤式UI

<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

可以請你張貼該div的html代碼部分?你是否也嘗試增加等待時間?像30,60秒? –

+0

其中是linktext信用卡的href?在HTML? –

+0

請發佈一些有效的HTML並正確格式化。另外,請顯示實際進行點擊的代碼。 – JeffC

回答

0

你應該放置的ID對有目的的硒測試這些主要的UI元素。在DOM中查找鏈接文本不是很好的做法,可能會導致測試不穩定。嘗試添加ID並通過ID查找元素。

+0

無法添加任何ID,因爲它是第三方支付html頁面 –

+0

因此,您正在編寫第三方功能測試?您的測試邊界應該始終停止向任何第三方傳遞。 – CaptainAdams

+0

這是問這個問題嗎?不,不,不。如果你不能回答被問到的問題,那麼根本不應答 – switch201

相關問題