2017-01-16 10 views
0

支払いWebviewでは、エスプレッソテストで月や年(スピナー)を選択しようとしています。私が "webclick"を使うと、何も追加されません。Androidエスプレッソ:ウェブビューのスピナーからアイテムを選択

WebViewの一部:

<form method="post" action="https://mercanet.bnpparibas.net/cgis-payment-mercanet/demo/callresource?rsc=creditcard" name="DATA_CAPTURE"> 
<span id="span_sips_card_number_title" class="sips_card_number_title"> N° de carte : </span> 
<select name="CARD_VAL_MONTH" size="1" class="sips_expiry_month_card_input"> 
<option value="01" selected="selected"> 01-Janvier</option> 
<option value="02"> 02-Février</option> 
<option value="03"> 03-Mars</option> 
<option value="04"> 04-Avril</option> 
<option value="05"> 05-Mai</option> 
<option value="06"> 06-Juin</option> 
<option value="07"> 07-Juillet</option> 
<option value="08"> 08-Août</option> 
<option value="09"> 09-Septembre</option> 
<option value="10"> 10-Octobre</option> 
<option value="11"> 11-Novembre</option> 
<option value="12"> 12-Décembre</option></select> 
<input size="20" maxlength="19" autocomplete="off" name="CARD_NUMBER" id="CARD_NUMBER" class="sips_card_number_input" value="" type="text"> 
<span id="ID_EXPIRE_FIN" class="sips_expiry_date_card_title"> Expire fin : </span> 
<span id="ID_SLASH" class="sips_expiry_date_card_title">/</span> 
<select name="CARD_VAL_YEAR" size="1" class="sips_expiry_year_card_input"> 
<option value="17" selected="selected"> 2017</option> 
<option value="18"> 2018</option> 
<option value="19"> 2019</option> 
<option value="20"> 2020</option> 
<option value="21"> 2021</option> 
<option value="22"> 2022</option> 
<option value="23"> 2023</option> 
<option value="24"> 2024</option> 
<option value="25"> 2025</option> 
<option value="26"> 2026</option> 
<option value="27"> 2027</option> 
</select><br><script type="text/javascript"> 
<!-- 
function InfoCvv() { 
window.open('/images/logo_serveur/commun/cryptogramme_light.fr.html','A1','width=700,height=450, status=no, directories=no, toolbar=no, location=no, menubar=no,scrollbars=no, resizable=no') 
} 
// --> 
</script> 
<a href="javascript:InfoCvv()" onmouseover="window.status='N° de contrôle au dos de la carte'" class="sips_cryptogram_example"> <span id="span_sips_popup_message" class="sips_popup_message">N° de contrôle au dos de la carte</span> </a>&nbsp;:&nbsp;<input size="3" maxlength="3" autocomplete="off" name="CVV_KEY" id="CVV_KEY" class="sips_cryptogram_code_input" value="" type="text"><div class="sips_bloc_info_cvv"></div><br><br> 
<span id="span_sips_submit_message" class="sips_submit_message"> Vous avez complété correctement le formulaire, vous pouvez </span> 
<input name="USER" id="USER" value="[email protected]" type="hidden"> 
<input name="MERCHANT_ID" id="MERCHANT_ID" value="082584341411111" type="hidden"> 
<input name="MERCHANT_COUNTRY" id="MERCHANT_COUNTRY" value="fr" type="hidden"> 
<input name="CARD_TYPE" id="CARD_TYPE" value="CB" type="hidden"> 
<input name="CARD_MODE" id="CARD_MODE" value="CARTE" type="hidden"> 
<input name="CUSTOMER_COUNTRY" id="CUSTOMER_COUNTRY" value="" type="hidden"> 
<input name="PAIEMENT" value="VALIDER" class="sips_submit_button" type="submit"></form> 

私が使用:

onWebView(withId(R.id.webview_payment)).forceJavascriptEnabled(); 

およびこれらの2つの方法で月および/または年にクリックをシミュレートしてみた:

onWebView(withId(R.id.webview_payment)) 
.withElement(findElement(Locator.CLASS_NAME,"sips_expiry_year_card_input")) 
.perform(webClick()); 

または

onWebView(withId(R.id.webview_payment)) 
.withElement(findElement(Locator.NAME,"CARD_VAL_MONTH")) 
.perform(webClick()); 

これらの方法は機能しません(ドロップダウンはありません)。私はデバッグモードで応答を得ました:

brandNew = false 
result = Evaluation: status: 0 value: null hasMessage: false message: null 

これはなぜ機能していないのですか?

答えて

0

何が問題なのかを知りました。 Webclickは機能しますが(フィールドが選択されています)、ドロップダウンは表示されません。次に、Locator.XPATHでオプションを選択する必要があります。

だから、この場合には、他の月と年を選択するためのソリューションです:

onWebView(withId(R.id.webview_payment)) 
      .withElement(findElement(Locator.NAME,"CARD_VAL_MONTH")) 
      .perform(webClick()); 

    onWebView(withId(R.id.webview_payment)) 
      .withElement(findElement(Locator.XPATH,"//option[@value='02']")) 
      .perform(webClick()); 


    onWebView(withId(R.id.webview_payment)) 
      .withElement(findElement(Locator.NAME,"CARD_VAL_YEAR")) 
      .perform(webClick()); 

    onWebView(withId(R.id.webview_payment)) 
      .withElement(findElement(Locator.XPATH,"//option[@value='18']")) 
      .perform(webClick()); 
関連する問題