2

webelementsドロップダウンメニューからリストを収集しAJAXて、各項目の値を確認するために繰り返し処理しようとしています。

私が行った方法は、次のコードです。

List<WebElement> names = new ArrayList<WebElement>();
names = pgNew.driver.findElements(By.className("col1"));

ただし、これを実行すると、15 個すべてではなくnames、最初の 2 個のアイテムのみが取り込まれclassName col1ます。代わりに、最後の 13 個のスポットが空白として保存されます。たとえば、次のものを取り込むことになっているとします。

a、b、c、d、e、f、g、h、i、j、k、l、m、n、o

次のもののみを取り込みます。

a、b、' '、' '、' '、' '、' '、' '、' '、' '、' '、' '、' '、' '、' '

何か案は?

編集:

htmlコードは次のとおりです。

<div class="iceSelInpTxt patientAutoComplete">
    <input id="mainForm:TextBox">
    <div id="mainForm:TextBox_div">
        <div>
            <div class="iceSelInpTxtSelRow AutoCompleteSelRow">
                <span class="informal">
                    <table class="table" width="100%">
                        <tbody>
                            <tr style="cursor: pointer;">
                                <td class="col1">Text</td>
                                <td class="col3">Text</td>
                                <td class="col1">Text</td>
                            </tr>
                        </tbody>
                    </table>
                </span>
                <span style="visibility:hidden;display:none;">MRN5218317218</span>
            </div>
            <div class="iceSelInpTxtRow pAutoCompleteSelRow">
            <div class="iceSelInpTxtRow pAutoCompleteSelRow">
            <div class="iceSelInpTxtRow pAutoCompleteSelRow">
            <div class="iceSelInpTxtRow pAutoCompleteSelRow">
            <div class="iceSelInpTxtRow pAutoCompleteSelRow">
            <div class="iceSelInpTxtRow pAutoCompleteSelRow">
            <div class="iceSelInpTxtRow pAutoCompleteSelRow">
            <div class="iceSelInpTxtRow pAutoCompleteSelRow">
            <div class="iceSelInpTxtRow pAutoCompleteSelRow">
            <div class="iceSelInpTxtRow pAutoCompleteSelRow">
            <div class="iceSelInpTxtRow pAutoCompleteSelRow">
            <div class="iceSelInpTxtRow pAutoCompleteSelRow">
            <div class="iceSelInpTxtRow pAutoCompleteSelRow">
            <div class="iceSelInpTxtRow pAutoCompleteSelRow">
        </div>
    </div>
    <input type="hidden" name="mainForm:TextBox_idx" style="" value="">
</div>

次の「iceSelInpTxtRow pAutoCompleteSelRow」はすべて同じですが、「col1」、「col3」、および「col1」の値が異なります。

また、この問題は FireFox でのみ発生していることに注意してください。

4

1 に答える 1

3

これは暗闇の中での完全なショットかもしれませんが、画面上で要素を物理的に見ることができなかったことを除いて、あなたが抱えている正確な問題のように聞こえるものに遭遇しましたが、HTML をプルアップするとすべての要素がそこにありました。これは Firefox v16+ での動作の変更であることがわかりました。それ以前のバージョンはすべて問題なく動作しました。その変更が何であるかはわかりませんでしたが、それを回避するために、JavaScript を少し使用して「要素をビューにスクロール」する必要がありました。うまくいけば、これがあなたの助けになるか、少なくとも正しい方向に進むことができます. 私の投稿を見てください:

要素が画面に物理的に表示されない場合、WebElement getText() は Firefox の空の文字列です。

于 2013-07-16T15:39:16.947 に答える