问题
I am working on an Auto-select drop-down which internally seems to be not a `Select control.
Currently I am using
driver.findelement(By.xpath"<my path>").sendkeys("intended-drop-down-value",Keys.ARROW_DOWN,Keys.RETURN);
then click on simple text-box elsewhere in the screen,It works generally.
But on some occasions its not completely selecting the intended value in drop-down. Kindly advise a best method to select values in this case?
Note: I have very minimal control on the HTML of the application under test
Many Thanks
**advertiser.clear();
advertiser.sendKeys(sAdvertiser,Keys.ARROW_DOWN,Keys.RETURN);
driver.manage().timeouts().implicitlyWait(myUtil.WAIT_TIME, TimeUnit.SECONDS);
additionalArea.click();
subTitlesRequired.clear();
subTitlesRequired.sendKeys(sSubtitles,Keys.ARROW_DOWN,Keys.RETURN);
driver.manage().timeouts().implicitlyWait(myUtil.WAIT_TIME, TimeUnit.SECONDS);
additionalArea.click();
if(!brand.isEnabled()){
advertiser.sendKeys("",Keys.ARROW_DOWN,Keys.RETURN);
driver.manage().timeouts().implicitlyWait(myUtil.WAIT_TIME, TimeUnit.SECONDS);
additionalArea.click();
}//end if
brand.clear();
brand.sendKeys(sBrand,Keys.ARROW_DOWN,Keys.RETURN);
additionalArea.click();
if(!product.isEnabled()){
brand.clear();
brand.sendKeys(sBrand,Keys.ARROW_DOWN,Keys.RETURN);
additionalArea.click();
driver.manage().timeouts().implicitlyWait(myUtil.WAIT_TIME, TimeUnit.SECONDS);
}//end if
product.sendKeys(xmlDataReader.searchElement("AddInformation","Product"),Keys.ARROW_DOWN,Keys.RETURN);
additionalArea.click();
=====================================
Inner HTML :
<div id="widget_common_prop_schema_FilteringSelect_6_dropdown" class="dijitPopup dijitComboBoxMenuPopup" style="visibility: visible; top: 1337px; left: 564.65px; right: auto; overflow: visible; height: auto; z-index: 1000; display: none;" role="region" aria-label="common_prop_schema_FilteringSelect_6_popup" dijitpopupparent="common_prop_schema_FilteringSelect_6">
<div id="common_prop_schema_FilteringSelect_6_popup" class="dijitReset dijitMenu dijitComboBoxMenu" role="listbox" style="overflow-y: auto; overflow-x: hidden; top: 0px;" data-dojo-attach-point="containerNode" widgetid="common_prop_schema_FilteringSelect_6_popup" aria-labelledby="common_prop_schema_FilteringSelect_6">
<div id="common_prop_schema_FilteringSelect_6_popup_prev" class="dijitMenuItem dijitMenuPreviousButton" role="option" data-dojo-attach-point="previousButton" style="display: none;">Previous choices</div>
<div id="common_prop_schema_FilteringSelect_6_popup0" class="dijitReset dijitMenuItem" role="option" item="0">Ad Council</div>
<div id="common_prop_schema_FilteringSelect_6_popup1" class="dijitReset dijitMenuItem" role="option" item="1">Ad CouncilAd Council</div>
<div id="common_prop_schema_FilteringSelect_6_popup2" class="dijitReset dijitMenuItem" role="option" item="2">Allied Domecq</div>
<div id="common_prop_schema_FilteringSelect_6_popup3" class="dijitReset dijitMenuItem" role="option" item="3">American Academy of Dermatology</div>
<div id="common_prop_schema_FilteringSelect_6_popup4" class="dijitReset dijitMenuItem" role="option" item="4">Amstel Light</div>
<div id="common_prop_schema_FilteringSelect_6_popup5" class="dijitReset dijitMenuItem" role="option" item="5">BMW</div>
<div id="common_prop_schema_FilteringSelect_6_popup6" class="dijitReset dijitMenuItem" role="option" item="6">BMW OF NORTH AMERICA</div>
<div id="common_prop_schema_FilteringSelect_6_popup7" class="dijitReset dijitMenuItem" role="option" item="7">Brookstone</div>
<div id="common_prop_schema_FilteringSelect_6_popup8" class="dijitReset dijitMenuItem" role="option" item="8">Cadbury/Dairy Milk</div>
<div id="common_prop_schema_FilteringSelect_6_popup9" class="dijitReset dijitMenuItem" role="option" item="9">casa</div>
<div id="common_prop_schema_FilteringSelect_6_popup10" class="dijitReset dijitMenuItem" role="option" item="10">Cellular One</div>
<div id="common_prop_schema_FilteringSelect_6_popup11" class="dijitReset dijitMenuItem" role="option" item="11">Champion</div>
<div id="common_prop_schema_FilteringSelect_6_popup12" class="dijitReset dijitMenuItem" role="option" item="12">Citibank</div>
<div id="common_prop_schema_FilteringSelect_6_popup13" class="dijitReset dijitMenuItem" role="option" item="13">Citigroup</div>
<div id="common_prop_schema_FilteringSelect_6_popup14" class="dijitReset dijitMenuItem" role="option" item="14">Coca Cola</div>
<div id="common_prop_schema_FilteringSelect_6_popup15" class="dijitReset dijitMenuItem" role="option" item="15">Coca Cola</div>
<div id="common_prop_schema_FilteringSelect_6_popup16" class="dijitReset dijitMenuItem" role="option" item="16">Coca-Cola</div>
<div id="common_prop_schema_FilteringSelect_6_popup17" class="dijitReset dijitMenuItem" role="option" item="17">coinstar</div>
<div id="common_prop_schema_FilteringSelect_6_popup18" class="dijitReset dijitMenuItem" role="option" item="18">Coka Cola North America</div>
<div id="common_prop_schema_FilteringSelect_6_popup19" class="dijitReset dijitMenuItem" role="option" item="19">Coke-Cola</div>
<div id="common_prop_schema_FilteringSelect_6_popup20" class="dijitReset dijitMenuItem" role="option" item="20">COMPUSA</div>
<div id="common_prop_schema_FilteringSelect_6_popup21" class="dijitReset dijitMenuItem" role="option" item="21">CURVES</div>
<div id="common_prop_schema_FilteringSelect_6_popup22" class="dijitReset dijitMenuItem" role="option" item="22">DALLAS STARS HOCKEY</div>
<div id="common_prop_schema_FilteringSelect_6_popup23" class="dijitReset dijitMenuItem" role="option" item="23">Dish Network</div>
<div id="common_prop_schema_FilteringSelect_6_popup24" class="dijitReset dijitMenuItem" role="option" item="24">Fuji</div>
<div id="common_prop_schema_FilteringSelect_6_popup25" class="dijitReset dijitMenuItem" role="option" item="25">Fuji Film</div>
<div id="common_prop_schema_FilteringSelect_6_popup26" class="dijitReset dijitMenuItem" role="option" item="26">Garnier</div>
<div id="common_prop_schema_FilteringSelect_6_popup27" class="dijitReset dijitMenuItem" role="option" item="27">General Mills</div>
<div id="common_prop_schema_FilteringSelect_6_popup28" class="dijitReset dijitMenuItem" role="option" item="28">General Mills/ Fiber One</div>
<div id="common_prop_schema_FilteringSelect_6_popup29" class="dijitReset dijitMenuItem" role="option" item="29">GlaxoSmithKline</div>
<div id="common_prop_schema_FilteringSelect_6_popup30" class="dijitReset dijitMenuItem" role="option" item="30">Global Fund</div>
<div id="common_prop_schema_FilteringSelect_6_popup31" class="dijitReset dijitMenuItem" role="option" item="31">Heineken</div>
<div id="common_prop_schema_FilteringSelect_6_popup32" class="dijitReset dijitMenuItem" role="option" item="32">Heineken USA</div>
<div id="common_prop_schema_FilteringSelect_6_popup33" class="dijitReset dijitMenuItem" role="option" item="33">Heinekin USA</div>
<div id="common_prop_schema_FilteringSelect_6_popup34" class="dijitReset dijitMenuItem" role="option" item="34">Hewlett-Packard</div>
<div id="common_prop_schema_FilteringSelect_6_popup35" class="dijitReset dijitMenuItem" role="option" item="35">Hilton Worldwide/ Hilton HHonors</div>
<div id="common_prop_schema_FilteringSelect_6_popup36" class="dijitReset dijitMenuItem" role="option" item="36">HomeAway.com</div>
<div id="common_prop_schema_FilteringSelect_6_popup37" class="dijitReset dijitMenuItem" role="option" item="37">KEXP</div>
<div id="common_prop_schema_FilteringSelect_6_popup38" class="dijitReset dijitMenuItem" role="option" item="38">KEXP 90.3 FM</div>
<div id="common_prop_schema_FilteringSelect_6_popup39" class="dijitReset dijitMenuItem" role="option" item="39">KP</div>
<div id="common_prop_schema_FilteringSelect_6_popup40" class="dijitReset dijitMenuItem" role="option" item="40">L'Oreal</div>
<div id="common_prop_schema_FilteringSelect_6_popup41" class="dijitReset dijitMenuItem" role="option" item="41">Les Schwab</div>
<div id="common_prop_schema_FilteringSelect_6_popup42" class="dijitReset dijitMenuItem" role="option" item="42">Manhattan Short Film Festival</div>
<div id="common_prop_schema_FilteringSelect_6_popup43" class="dijitReset dijitMenuItem" role="option" item="43">McVities</div>
<div id="common_prop_schema_FilteringSelect_6_popup44" class="dijitReset dijitMenuItem" role="option" item="44">MTV</div>
<div id="common_prop_schema_FilteringSelect_6_popup45" class="dijitReset dijitMenuItem" role="option" item="45">Nestle</div>
<div id="common_prop_schema_FilteringSelect_6_popup46" class="dijitReset dijitMenuItem" role="option" item="46">Nestle Hot Pockets</div>
<div id="common_prop_schema_FilteringSelect_6_popup47" class="dijitReset dijitMenuItem" role="option" item="47">NESTLE JUICY JUICE</div>
<div id="common_prop_schema_FilteringSelect_6_popup48" class="dijitReset dijitMenuItem" role="option" item="48">Nestle PowerBar</div>
<div id="common_prop_schema_FilteringSelect_6_popup49" class="dijitReset dijitMenuItem" role="option" item="49">Nike</div>
<div id="common_prop_schema_FilteringSelect_6_popup50" class="dijitReset dijitMenuItem" role="option" item="50">P&G</div>
<div id="common_prop_schema_FilteringSelect_6_popup51" class="dijitReset dijitMenuItem" role="option" item="51">P&G/ Bounty</div>
<div id="common_prop_schema_FilteringSelect_6_popup52" class="dijitReset dijitMenuItem" role="option" item="52">P&G/ Charmin</div>
<div id="common_prop_schema_FilteringSelect_6_popup53" class="dijitReset dijitMenuItem" role="option" item="53">P&G/ Charmin Sit or Squat</div>
<div id="common_prop_schema_FilteringSelect_6_popup54" class="dijitReset dijitMenuItem" role="option" item="54">P&G/ Charmin SitOrSquat</div>
<div id="common_prop_schema_FilteringSelect_6_popup55" class="dijitReset dijitMenuItem" role="option" item="55">P&G/ Crest</div>
<div id="common_prop_schema_FilteringSelect_6_popup56" class="dijitReset dijitMenuItem" role="option" item="56">P&G/ Crest 3D Whitestrips</div>
<div id="common_prop_schema_FilteringSelect_6_popup57" class="dijitReset dijitMenuItem" role="option" item="57">P&G/ Scope</div>
<div id="common_prop_schema_FilteringSelect_6_popup58" class="dijitReset dijitMenuItem" role="option" item="58">P&G/Bounty</div>
<div id="common_prop_schema_FilteringSelect_6_popup59" class="dijitReset dijitMenuItem" role="option" item="59">Partnership for a Drug Free America</div>
<div id="common_prop_schema_FilteringSelect_6_popup60" class="dijitReset dijitMenuItem" role="option" item="60">PARTNERSHIP FOR A DRUG-FREE AMERICA</div>
<div id="common_prop_schema_FilteringSelect_6_popup61" class="dijitReset dijitMenuItem" role="option" item="61">PowerBar</div>
<div id="common_prop_schema_FilteringSelect_6_popup62" class="dijitReset dijitMenuItem" role="option" item="62">Procter & Gamble</div>
<div id="common_prop_schema_FilteringSelect_6_popup63" class="dijitReset dijitMenuItem" role="option" item="63">Proctor & Gamble</div>
<div id="common_prop_schema_FilteringSelect_6_popup64" class="dijitReset dijitMenuItem" role="option" item="64">Public Service</div>
<div id="common_prop_schema_FilteringSelect_6_popup65" class="dijitReset dijitMenuItem" role="option" item="65">PUBLICIS</div>
<div id="common_prop_schema_FilteringSelect_6_popup66" class="dijitReset dijitMenuItem" role="option" item="66">Publicis NY</div>
<div id="common_prop_schema_FilteringSelect_6_popup67" class="dijitReset dijitMenuItem" role="option" item="67">Radio NY</div>
<div id="common_prop_schema_FilteringSelect_6_popup68" class="dijitReset dijitMenuItem" role="option" item="68">Renault</div>
<div id="common_prop_schema_FilteringSelect_6_popup69" class="dijitReset dijitMenuItem" role="option" item="69">sagem</div>
<div id="common_prop_schema_FilteringSelect_6_popup70" class="dijitReset dijitMenuItem" role="option" item="70">Sara Lee</div>
<div id="common_prop_schema_FilteringSelect_6_popup71" class="dijitReset dijitMenuItem" role="option" item="71">Sunday River</div>
<div id="common_prop_schema_FilteringSelect_6_popup72" class="dijitReset dijitMenuItem" role="option" item="72">T-MOBILE</div>
<div id="common_prop_schema_FilteringSelect_6_popup73" class="dijitReset dijitMenuItem" role="option" item="73">T-Mobile USA</div>
<div id="common_prop_schema_FilteringSelect_6_popup74" class="dijitReset dijitMenuItem" role="option" item="74">TBS</div>
<div id="common_prop_schema_FilteringSelect_6_popup75" class="dijitReset dijitMenuItem" role="option" item="75">Terminix</div>
<div id="common_prop_schema_FilteringSelect_6_popup76" class="dijitReset dijitMenuItem" role="option" item="76">The Sixth Floor Museum at Dealey Plaza</div>
<div id="common_prop_schema_FilteringSelect_6_popup77" class="dijitReset dijitMenuItem" role="option" item="77">Thompson RCA</div>
<div id="common_prop_schema_FilteringSelect_6_popup78" class="dijitReset dijitMenuItem" role="option" item="78">Thomson RCA</div>
<div id="common_prop_schema_FilteringSelect_6_popup79" class="dijitReset dijitMenuItem" role="option" item="79">Tourism Victoria</div>
<div id="common_prop_schema_FilteringSelect_6_popup80" class="dijitReset dijitMenuItem" role="option" item="80">UBS</div>
<div id="common_prop_schema_FilteringSelect_6_popup81" class="dijitReset dijitMenuItem" role="option" item="81">UBS/ UBS</div>
<div id="common_prop_schema_FilteringSelect_6_popup82" class="dijitReset dijitMenuItem" role="option" item="82">UBS/UBS</div>
<div id="common_prop_schema_FilteringSelect_6_popup83" class="dijitReset dijitMenuItem" role="option" item="83">Unspecified</div>
<div id="common_prop_schema_FilteringSelect_6_popup84" class="dijitReset dijitMenuItem" role="option" item="84">Wam / Publicis</div>
<div id="common_prop_schema_FilteringSelect_6_popup85" class="dijitReset dijitMenuItem" role="option" item="85">WAM PUBLICIS</div>
<div id="common_prop_schema_FilteringSelect_6_popup86" class="dijitReset dijitMenuItem" role="option" item="86">Washington Lottery</div>
<div id="common_prop_schema_FilteringSelect_6_popup87" class="dijitReset dijitMenuItem" role="option" item="87">Washington's Lottery</div>
<div id="common_prop_schema_FilteringSelect_6_popup88" class="dijitReset dijitMenuItem" role="option" item="88">Washinton Lottery</div>
<div id="common_prop_schema_FilteringSelect_6_popup89" class="dijitReset dijitMenuItem" role="option" item="89">WESTERN WIRELESS</div>
<div id="common_prop_schema_FilteringSelect_6_popup90" class="dijitReset dijitMenuItem" role="option" item="90">Whirlpool</div>
<div id="common_prop_schema_FilteringSelect_6_popup91" class="dijitReset dijitMenuItem" role="option" item="91">Whirlpool Corp</div>
<div id="common_prop_schema_FilteringSelect_6_popup92" class="dijitReset dijitMenuItem" role="option" item="92">Whirlpool Corp.</div>
<div id="common_prop_schema_FilteringSelect_6_popup93" class="dijitReset dijitMenuItem" role="option" item="93">Whirlpool USA</div>
<div id="common_prop_schema_FilteringSelect_6_popup94" class="dijitReset dijitMenuItem" role="option" item="94">YAI/National Institute for People with Disabilities</div>
<div id="common_prop_schema_FilteringSelect_6_popup95" class="dijitReset dijitMenuItem" role="option" item="95">Zonkers</div>
<div id="common_prop_schema_FilteringSelect_6_popup96" class="dijitReset dijitMenuItem" role="option" item="96">Zurich</div>
<div id="common_prop_schema_FilteringSelect_6_popup_next" class="dijitMenuItem dijitMenuNextButton" role="option" data-dojo-attach-point="nextButton" style="display: none;">More choices</div>
</div>
<iframe class="dijitBackgroundIframe" src="javascript:""" role="presentation" style="opacity: 0.1; width: 100%; height: 100%;" tabindex="-1">
</div>
回答1:
I would first use the browser to locate the element correctly (preferably CSS). You could then either try webdriver methods to select it or use plain JavaScript in JavaScriptExecutor to enter it. In debug you could check expression if effect of your action is as expected.
You could also try, if selenium-ide or selenium builder could select it and then export that script into Java.
来源:https://stackoverflow.com/questions/28322015/what-will-be-the-best-way-to-select-drop-down-item-in-dojo-based-html-in-java-w