使用selenium点击dijit编写的组合框并从列表中选择项目是否更容易?
源:
<div id="widget_ofertaForm_offerElements_1_" class="dijit dijitReset dijitInlineTable dijitLeft AreaStd dijitComboBox" tabindex="-1" wairole="combobox" dojoattachpoint="comboNode" dojoattachevent="onmouseenter:_onMouse,onmouseleave:_onMouse,onmousedown:_onMouse" role="combobox" style="width: 420px;" widgetid="ofertaForm_offerElements_1_">
<div style="overflow: hidden;">
<div class="dijitReset dijitRight dijitButtonNode dijitArrowButton dijitDownArrowButton" dojoattachevent="onmousedown:_onArrowMouseDown,onmouseup:_onMouse,onmouseenter:_onMouse,onmouseleave:_onMouse" wairole="presentation" dojoattachpoint="downArrowNode" role="presentation">
<div class="dijitArrowButtonInner"> </div>
<div class="dijitArrowButtonChar">ˇ</div>
</div>
<div class="dijitReset dijitValidationIcon">
<br>
</div>
<div class="dijitReset dijitValidationIconText">?</div>
<div class="dijitReset dijitInputField">
<input id="ofertaForm_offerElements_1_" class="dijitReset" type="text" waistate="haspopup-true,autocomplete-list" wairole="textbox" dojoattachpoint="textbox,focusNode" dojoattachevent="onkeypress:_onKeyPress,compositionend" autocomplete="off" role="textbox" aria-haspopup="true" aria-autocomplete="list" aria-invalid="false" tabindex="0" aria-required="true" value="HTC TOUCH DUAL CZARNY - 1382.95 PLN 16 szt. ( 1701.03 PLN Z VAT) A (+01101100)">
<input type="hidden" name="offerElements[1]" value="#_01101100#MATERIAL_BONUS">
</div>
我知道这里没有任何物品,但是当我点击组合框时,它们真的显示出来了。
我尝试使用selenium IDE。所以我写道:
selenium.clickAt("class=dijitArrowButtonInner","100");
它有效。但是只适用于selenium IDE,但在使用junit时,我收到消息“找不到元素”。
我会感谢任何帮助。
ps。如果不正确,请更正我的英文/标题。遗憾。
答案 0 :(得分:2)
如果要从这种组合框中选择一些项目,您需要知道要选择哪个元素(例如id,class,其他一些属性)。之后,您需要单击选择控件
selenium.click("div.dijitArrowButtonChar");
然后,您需要等待,直到您需要选择的元素显示。
selenium.waitForCondition("selenium.isElementPresent(\""+selector_for_element+"\")", "1000");
其中“selector_for_element”是您需要选择的元素的选择器。比如,“div.selectItem:last()”。
显示元素后,您需要点击它:
selenium.click(selector_for_element);
Selenium 1.0代码。