0

バックグラウンド:

  • カードストック-これには、プログラムの詳細、ストックの場所、ストックの国が含まれます
  • 顧客販売カード画面-新しいカードを顧客に販売するときは、顧客の住所を入力する必要があります。国を入力すると、特定のフィールド(州/住所2行目/郵便番号)が必須または任意になります。

問題は、使用されている2つの国のデータベースが同じではなく、異なる可能性があることです。カードストックに「ドイツ」が表示され、カード販売画面に「ドイツ連邦共和国」が表示されます。

私の流れ:

1)発行前のカードを検索して、カードストックから国を取得します-この変数を文字列に割り当てます。aString

2)そのカードを売る

3)国のドロップダウンボックスで-aStringそのリストにある場合はを選択しaString、そうでない場合は「elsethens」のリストを作成してバリエーションをキャッチします

私のコードは、文字列がリストにないことを教え続け、両方の国を一致させてテストした場合でもcountrydropdown出力されますfalse

どんな助けでも大歓迎です

Boolean countrydropdown = "xpath=//select[@id='address.country']/option]".indexOf(aString) > 0;
System.out.println("countrydropdown");
System.out.println(countrydropdown);


<tr>
    <td class="labelFormReq">*</td>
    <td class="labelForm">Country:</td>
    <td>
        <select id="address.country" onchange="validateAndSubmit(this, 'selectCountryEvent');" name="address.country">
            <option value="">Please Select</option>
            <option value="4">Afghanistan</option>
            <option value="248">Alan Islands </option>
            <option value="8">Albania</option>
            <option value="12">Algeria</option>
            <option value="16">American Samoa</option>
            <option value="20">Andorra</option>
            <option value="24">Angola</option>
            <option value="660">Anguilla</option>
            <option value="10">Antarctica</option>
            <option value="28">Antigua and Barbuda</option>
            <option value="32">Argentina</option>
            <option value="51">Armenia</option>
            <option value="533">Aruba</option>
            <option value="36">Australia</option>
        </select>
    </td>
</tr>
4

1 に答える 1

0
Boolean countrydropdown = "xpath=//select[@id='address.country']/option]".indexOf(aString) > 0;

実際には要素を検索しません。実際にaStringは、テキストで検索します"xpath=//select[@id='address.country']/option]"。何か有用なものを返すようにするには、メソッド呼び出しでラップする必要があります。これを参照してください:

Boolean countrydropdown = selenium.isElementPresent("xpath=//select[@id='address.country']/option[text()='" + aString + "']");

もう少し読みやすく、慣習に対応するために:

boolean countryDropdown = selenium.isElementPresent("xpath=id('address.country')/option[text()='" + aString + "']");

要素の子があなたと等しいテキストで存在するtrue場合にのみ返されます。<option>adress.countryaString

または、単調さを減らしたい場合は、次のようにします。

boolean countryDropdown = false;

String[] countryOptions = selenium.getSelectOptions("id=address.country");
for (String option : countryOptions) {
    if (option.equals(aString)) {
        countryDropdown = true;
        break;
    }
}
于 2012-07-21T08:27:34.013 に答える