2

我正在尝试webelementsAJAX下拉菜单中收集列表以进行迭代以验证每个项目的值。

我这样做的方式是通过以下代码:

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

但是,当我运行它时,names只接收前两项className col1而不是全部 15。相反,它将最后 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 回答