e2e Testing bootstrap select picker - protractor

bootstrap selectpicker generates some elements so that protractor has to click a button to show the list of options (that are in the hidden select) and then click the item in the list. I'm having trouble figuring out, by text which list item needs to click.
Sample HTML looks like this:
<div>
<button type="button">
<div class="ripple-container"></div>
</button>
<div class="dropdown-menu open" role="combobox">
<ul class="dropdown-menu inner" role="listbox">
<li data-original-index="1"><a>Male</a></li>
<li data-original-index="2"><a>Female</a></li>
</ul>
</div>
<select>
<option> </option>
<option value="MALE">Male</option>
<option value="FEMALE">Female</option>
</select>
</div>
I want to be able to tell protractor to click the li that corresponds to the option with the value FEMALE - because of localization, I don't want to hardcode strings, but rather find out the position of the option with the value FEMALE and use that to select the <li data-original-index="2">
Is this even possible? Is there another, better way to do it?

Related

How to use a toggle switch with tag a href?

I have two html sheets, one in Spanish and one in English, and I want to put a bootstrap toggle switch so that every time I click I am redirected to a different sheet
<li>
<a href="secciones/index-esp.html">
ESP
</a>
<div class="form-check form-switch">
<input type="checkbox" id="flexSwitchCheckDefault">
</div>
<a href="secciones/index-esp.html">
ENG
</a>
</li>

how can i apply featherlight in a dropdown menu?

I am asking because i could not find on github project suggestions, anyway i would like know how can I apply this effect in a or a dropdown menu its is possible? maybe you guys can include this example too?
plugin: https://github.com/noelboss/featherlight/
my html:
<select>
<option>Apples</option>
<option selected>Pineapples</option>
<option>Chocklate</option>
<option>Pancakes</option>
</select>
<div class="dropdown pull-right">
<button class="btn dropdown-toggle" type="button" data-toggle="dropdown">main
<span class="caret"></span></button>
<ul class="dropdown-menu" >
<li>test1</li>
<li>test2</li>
<li>test3</li>
</ul>
</div>
thank you.
Sure, as stated in the doc...

Aligning buttons in html

I have code that uses the <ul> and the anchor tags, I have put: <br> <br />
<center> (without some spaces.....) above it, and this: '''' below it. But I still get 3 rows I have in total 5 buttons, 4 that change when you hover over them and one dropdown menu in the middle. But I need them to be all on one level. Can anyone help me with this?
<div style="text-align:center;">
<button>Button-1</button><button>Button-2</button>
<select>
<option>1</option>
<option>2</option>
<option>3</option>
</select>
<button>Button-3</button><button>Button-4</button>
</div>

how do I hide certain part of form

I have a form and it contains dropdown box and different div items. Based on selection from dropdown box, I show those div items. But some of the text in those div items are shown when the form is loaded and not when I select the option from dropdown box. The code is somewhat like this
<form>
<select id="">
<option value="one"> One </option>
<option value="two"> Two </option>
<option value="three"> Three </option>
</select>
<div id="onee"> header text ..<table> </table></div>
<div id="twoo"> header text ..<table> </table></div>
</form>
So when I load the page form with select drop down box is shown , but it also shows header text which is within div. How do I hide that text?
<div id="onee" style="display:none"> header text ..<table> </table></div>
<div id="twoo" style="display:none"> header text ..<table> </table></div>
so your full code on page load is
<form>
<select id="">
<option value="one"> One </option>
<option value="two"> Two </option>
<option value="three"> Three </option>
</select>
<div id="onee" style="display:none"> header text ..<table> </table></div>
<div id="twoo" style="display:none"> header text ..<table> </table></div>
</form>
after this when you change option in select box
just replace display:none with display:block
If you are using JavaScript to show divs based on selection, you can as well hide all the divs initially. Here is how to do it in JQuery:
$("#onee").hide();
$("#twoo").hide();
Or you can just hide them with CSS: diplay:none.
If you use postbacks in your drop-down, you can control html output on the server side and only render divs you need.
You can start those divs at display:none.

dijit.form.select will close surrounding tooltip dialog in IE

I have encountered a strange behaviour using dijit.form.select inside a tooltip-dialog. Here's a shortened part of my code:
<div id="toolbar" dojoType="dijit.Toolbar">
<div dojoType="dijit.form.DropDownButton">
<div dojoType="dijit.TooltipDialog" id="tooltip">
<input dojoType=dijit.form.TextBox type="text" id="textbox">
<select id="select" dojoType="dijit.form.Select">
<option value="1">1</option>
<option value="2">2</option>
</select>
<button dojoType="dijit.form.Button" type="submit" id="button">click</button>
</div>
</div>
</div>
Whenever I open the toolbar and the form displays, the tooltip dialog will close, as soon as I choose an option from the select in IE only! FF is ok ...
My workaround for now is to use a normal select (I just omit 'dojoType="dijit.form.Select"'), but for layout-reasons I'd like to have a dijit.form.select.
Any hint is appreciated.
Greetings, Select0r
Using a normal "select" is not an option as I need to change the options dynamically which really is a pain with a normal select. I'd also like all selects on the page to look the same.
dijit.FilteringSelect will not show the same error but requires a different handling of changing the options dynamically. I also don't like the dropdown being an input field.
So I've come up with the following workaround, which still is not an acceptable solution but at least something I can live with for now:
<div dojoType="dijit.form.DropDownButton" id="DropDownButton">
<div dojoType="dijit.TooltipDialog" id="tooltip">
<input dojoType=dijit.form.TextBox type="text" id="textbox">
<select id="select" dojoType="dijit.form.Select" onChange="dijit.byId("DropDownButton").openDropDown();">
<option value="1">1</option>
<option value="2">2</option>
</select>
<button dojoType="dijit.form.Button" type="submit" id="button">click</button>
</div>
</div>
dijit.Toolbar was removed, as it was of no use.
the Select will now call the DropDownButton's method "openDropDown" onChange, showing the TooltipDialog again.
Now I'm able to use the TooltipDialog in IE - but still one issue remains: the TooltipDialog remains hidden in IE until I move the mouse a pixel. But at least I don't have to click on the button again to open the dialog.