Selectize reduces width of dropdown making options illegible - selectize.js

When loading selectize selects inside a table, the table automatically reduces the cell width to the miminum size possible squeezing selectize dropdowns. When you open dropdown, the options are illegible - the first 3-4 characters can be read and the rest are hidden.
Here is a sample fiddle:
$(function() {
$('select').selectize({ plugins: ['remove_button']
});
<form role="form" id="contacts">
<table>
<tr><td> <select placeholder="Select a person..." multiple>
<option value="">All</option>
<option value="4">Thomas Edison</option>
<option value="17">John Doe</option>
<option value="19">John Donut</option>
<option value="21">Dante Joe</option>
<option value="22">Jo Dod</option>
<option value="1">Nikola</option>
<option value="3">Nikola Tesla</option>
<option value="5">Arnold Schwarzenegger</option>
</select></td>
<td> <select placeholder="Select a person..." multiple>
<option value="">All</option>
<option value="4">Thomas Edison</option>
<option value="17">John Doe</option>
<option value="19">John Donut</option>
<option value="21">Dante Joe</option>
<option value="22">Jo Dod</option>
<option value="1">Nikola</option>
<option value="3">Nikola Tesla</option>
<option value="5">Arnold Schwarzenegger</option>
</select></td>
<td> <select placeholder="Select a person..." multiple>
<option value="">All</option>
<option value="4">Thomas Edison</option>
<option value="17">John Doe</option>
<option value="19">John Donut</option>
<option value="21">Dante Joe</option>
<option value="22">Jo Dod</option>
<option value="1">Nikola</option>
<option value="3">Nikola Tesla</option>
<option value="5">Arnold Schwarzenegger</option>
</select></td>
<td> <select placeholder="Select a person..." multiple>
<option value="">All</option>
<option value="4">Thomas Edison</option>
<option value="17">John Doe</option>
<option value="19">John Donut</option>
<option value="21">Dante Joe</option>
<option value="22">Jo Dod</option>
<option value="1">Nikola</option>
<option value="3">Nikola Tesla</option>
<option value="5">Arnold Schwarzenegger</option>
</select></td> <td> <select placeholder="Select a person..." multiple>
<option value="">All</option>
<option value="4">Thomas Edison</option>
<option value="17">John Doe</option>
<option value="19">John Donut</option>
<option value="21">Dante Joe</option>
<option value="22">Jo Dod</option>
<option value="1">Nikola</option>
<option value="3">Nikola Tesla</option>
<option value="5">Arnold Schwarzenegger</option>
</select></td> <td> <select placeholder="Select a person..." multiple>
<option value="">All</option>
<option value="4">Thomas Edison</option>
<option value="17">John Doe</option>
<option value="19">John Donut</option>
<option value="21">Dante Joe</option>
<option value="22">Jo Dod</option>
<option value="1">Nikola</option>
<option value="3">Nikola Tesla</option>
<option value="5">Arnold Schwarzenegger</option>
</select></td> <td> <select placeholder="Select a person..." multiple>
<option value="">All</option>
<option value="4">Thomas Edison</option>
<option value="17">John Doe</option>
<option value="19">John Donut</option>
<option value="21">Dante Joe</option>
<option value="22">Jo Dod</option>
<option value="1">Nikola</option>
<option value="3">Nikola Tesla</option>
<option value="5">Arnold Schwarzenegger</option>
</select></td></tr>
</table>
</form>
https://jsfiddle.net/csjqaf3m/
As you can see, the items in the list are completely illegible.
My columns cannot have fixed widths because the data loaded into them varies - in one instance, I could have 3 options with max 6 characters, next could load in data with up 15 characters width ...
Not overly concerned about the width of the dropdown BUT when it is open, I expect the select to show all data and make sure it can be read and is visible...

Insert a min-width for dropdown
.selectize-dropdown{
min-width:250px !important;
}

I was hoping there was an option or method that existed to make this work but apparently not so I designed a solution which isn't perfect but it's as close as I think I'm going to get.
When creating the dropdown I use jQuery to test the length of every item in the dropdown and store the largest length. I then pad out the default select option with dashes so that the length matches the largest element:
var optionLength = 0;
this
.data()
.sort()
.unique()
.each( function(d) {
// Get the length of the longest
optionLength = (d.length>optionLength?d.length:optionLength);
select.append($('<option>' + d + '</option>'));
} );
var spacer = "-".repeat(optionLength/2);
select.prepend('<option value="">'+spacer+' All '+spacer+'</option>');

Related

Selenium Error Element not interactable Excel VBA

I am new to selenium, trying to automate a webpage form. Using Excel 2016 with VBA and Chrome browser.
The particular page requires login credentials, so unable to share the URL where this error happens.
There are couple of dropdown items, which I am having trouble with. I get Selenium Error, Element not interactable. Below is one such element. Sorry, I am not able to get the complete HTML code here.
<div class="col-md-2">
<select name="ctl00$MainContent$ddlScopeYear" id="MainContent_ddlScopeYear" class="chosen-select select_styled" style="display: none;">
<option selected="selected" value="--Select--">--Select--</option>
<option value="2021">2021</option>
<option value="2020">2020</option>
<option value="2019">2019</option>
<option value="2018">2018</option>
<option value="2017">2017</option>
<option value="2016">2016</option>
<option value="2015">2015</option>
<option value="2014">2014</option>
<option value="2013">2013</option>
<option value="2012">2012</option>
<option value="2011">2011</option>
<option value="2010">2010</option>
<option value="2009">2009</option>
<option value="2008">2008</option>
<option value="2007">2007</option>
<option value="2006">2006</option>
<option value="2005">2005</option>
<option value="2004">2004</option>
<option value="2003">2003</option>
<option value="2002">2002</option>
<option value="2001">2001</option>
<option value="2000">2000</option>
<option value="1999">1999</option>
<option value="1998">1998</option>
<option value="1997">1997</option>
<option value="1996">1996</option>
<option value="1995">1995</option>
<option value="1994">1994</option>
<option value="1993">1993</option>
<option value="1992">1992</option>
<option value="1991">1991</option>
<option value="1990">1990</option>
<option value="1989">1989</option>
<option value="1988">1988</option>
<option value="1987">1987</option>
<option value="1986">1986</option>
<option value="1985">1985</option>
<option value="1984">1984</option>
<option value="1983">1983</option>
<option value="1982">1982</option>
<option value="1981">1981</option>
<option value="1980">1980</option>
<option value="1979">1979</option>
<option value="1978">1978</option>
<option value="1977">1977</option>
<option value="1976">1976</option>
<option value="1975">1975</option>
<option value="1974">1974</option>
<option value="1973">1973</option>
<option value="1972">1972</option>
<option value="1971">1971</option>
<option value="1970">1970</option>
<option value="1969">1969</option>
<option value="1968">1968</option>
<option value="1967">1967</option>
<option value="1966">1966</option>
<option value="1965">1965</option>
<option value="1964">1964</option>
<option value="1963">1963</option>
<option value="1962">1962</option>
<option value="1961">1961</option>
<option value="1960">1960</option>
<option value="1959">1959</option>
<option value="1958">1958</option>
<option value="1957">1957</option>
<option value="1956">1956</option>
<option value="1955">1955</option>
<option value="1954">1954</option>
<option value="1953">1953</option>
<option value="1952">1952</option>
<option value="1951">1951</option>
<option value="1950">1950</option>
<option value="1949">1949</option>
<option value="1948">1948</option>
<option value="1947">1947</option>
<option value="1946">1946</option>
<option value="1945">1945</option>
<option value="1944">1944</option>
<option value="1943">1943</option>
<option value="1942">1942</option>
<option value="1941">1941</option>
<option value="1940">1940</option>
<option value="1939">1939</option>
<option value="1938">1938</option>
<option value="1937">1937</option>
<option value="1936">1936</option>
<option value="1935">1935</option>
<option value="1934">1934</option>
<option value="1933">1933</option>
<option value="1932">1932</option>
<option value="1931">1931</option>
<option value="1930">1930</option>
<option value="1929">1929</option>
<option value="1928">1928</option>
<option value="1927">1927</option>
<option value="1926">1926</option>
<option value="1925">1925</option>
<option value="1924">1924</option>
<option value="1923">1923</option>
<option value="1922">1922</option>
<option value="1921">1921</option>
<option value="1920">1920</option>
<option value="1919">1919</option>
<option value="1918">1918</option>
<option value="1917">1917</option>
<option value="1916">1916</option>
<option value="1915">1915</option>
<option value="1914">1914</option>
<option value="1913">1913</option>
<option value="1912">1912</option>
<option value="1911">1911</option>
<option value="1910">1910</option>
<option value="1909">1909</option>
<option value="1908">1908</option>
<option value="1907">1907</option>
<option value="1906">1906</option>
<option value="1905">1905</option>
<option value="1904">1904</option>
<option value="1903">1903</option>
<option value="1902">1902</option>
<option value="1901">1901</option>
<option value="1900">1900</option>
</select><div class="chosen-container chosen-container-single chosen-container-active" style="width:100%;" title="" id="MainContent_ddlScopeYear_chosen"><a class="chosen-single"><span>2021</span><div><b></b></div></a><div class="chosen-drop"><div class="chosen-search"><input type="text" autocomplete="off"></div><ul class="chosen-results"><li class="active-result" data-option-array-index="0" style="">--Select--</li><li class="active-result result-selected" data-option-array-index="1" style="">2021</li><li class="active-result" data-option-array-index="2" style="">2020</li><li class="active-result" data-option-array-index="3" style="">2019</li><li class="active-result" data-option-array-index="4" style="">2018</li><li class="active-result" data-option-array-index="5" style="">2017</li><li class="active-result" data-option-array-index="6" style="">2016</li><li class="active-result" data-option-array-index="7" style="">2015</li><li class="active-result" data-option-array-index="8" style="">2014</li><li class="active-result" data-option-array-index="9" style="">2013</li><li class="active-result" data-option-array-index="10" style="">2012</li><li class="active-result" data-option-array-index="11" style="">2011</li><li class="active-result" data-option-array-index="12" style="">2010</li><li class="active-result" data-option-array-index="13" style="">2009</li><li class="active-result" data-option-array-index="14" style="">2008</li><li class="active-result" data-option-array-index="15" style="">2007</li><li class="active-result" data-option-array-index="16" style="">2006</li><li class="active-result" data-option-array-index="17" style="">2005</li><li class="active-result" data-option-array-index="18" style="">2004</li><li class="active-result" data-option-array-index="19" style="">2003</li><li class="active-result" data-option-array-index="20" style="">2002</li><li class="active-result" data-option-array-index="21" style="">2001</li><li class="active-result" data-option-array-index="22" style="">2000</li><li class="active-result" data-option-array-index="23" style="">1999</li><li class="active-result" data-option-array-index="24" style="">1998</li><li class="active-result" data-option-array-index="25" style="">1997</li><li class="active-result" data-option-array-index="26" style="">1996</li><li class="active-result" data-option-array-index="27" style="">1995</li><li class="active-result" data-option-array-index="28" style="">1994</li><li class="active-result" data-option-array-index="29" style="">1993</li><li class="active-result" data-option-array-index="30" style="">1992</li><li class="active-result" data-option-array-index="31" style="">1991</li><li class="active-result" data-option-array-index="32" style="">1990</li><li class="active-result" data-option-array-index="33" style="">1989</li><li class="active-result" data-option-array-index="34" style="">1988</li><li class="active-result" data-option-array-index="35" style="">1987</li><li class="active-result" data-option-array-index="36" style="">1986</li><li class="active-result" data-option-array-index="37" style="">1985</li><li class="active-result" data-option-array-index="38" style="">1984</li><li class="active-result" data-option-array-index="39" style="">1983</li><li class="active-result" data-option-array-index="40" style="">1982</li><li class="active-result" data-option-array-index="41" style="">1981</li><li class="active-result" data-option-array-index="42" style="">1980</li><li class="active-result" data-option-array-index="43" style="">1979</li><li class="active-result" data-option-array-index="44" style="">1978</li><li class="active-result" data-option-array-index="45" style="">1977</li><li class="active-result" data-option-array-index="46" style="">1976</li><li class="active-result" data-option-array-index="47" style="">1975</li><li class="active-result" data-option-array-index="48" style="">1974</li><li class="active-result" data-option-array-index="49" style="">1973</li><li class="active-result" data-option-array-index="50" style="">1972</li><li class="active-result" data-option-array-index="51" style="">1971</li><li class="active-result" data-option-array-index="52" style="">1970</li><li class="active-result" data-option-array-index="53" style="">1969</li><li class="active-result" data-option-array-index="54" style="">1968</li><li class="active-result" data-option-array-index="55" style="">1967</li><li class="active-result" data-option-array-index="56" style="">1966</li><li class="active-result" data-option-array-index="57" style="">1965</li><li class="active-result" data-option-array-index="58" style="">1964</li><li class="active-result" data-option-array-index="59" style="">1963</li><li class="active-result" data-option-array-index="60" style="">1962</li><li class="active-result" data-option-array-index="61" style="">1961</li><li class="active-result" data-option-array-index="62" style="">1960</li><li class="active-result" data-option-array-index="63" style="">1959</li><li class="active-result" data-option-array-index="64" style="">1958</li><li class="active-result" data-option-array-index="65" style="">1957</li><li class="active-result" data-option-array-index="66" style="">1956</li><li class="active-result" data-option-array-index="67" style="">1955</li><li class="active-result" data-option-array-index="68" style="">1954</li><li class="active-result" data-option-array-index="69" style="">1953</li><li class="active-result" data-option-array-index="70" style="">1952</li><li class="active-result" data-option-array-index="71" style="">1951</li><li class="active-result" data-option-array-index="72" style="">1950</li><li class="active-result" data-option-array-index="73" style="">1949</li><li class="active-result" data-option-array-index="74" style="">1948</li><li class="active-result" data-option-array-index="75" style="">1947</li><li class="active-result" data-option-array-index="76" style="">1946</li><li class="active-result" data-option-array-index="77" style="">1945</li><li class="active-result" data-option-array-index="78" style="">1944</li><li class="active-result" data-option-array-index="79" style="">1943</li><li class="active-result" data-option-array-index="80" style="">1942</li><li class="active-result" data-option-array-index="81" style="">1941</li><li class="active-result" data-option-array-index="82" style="">1940</li><li class="active-result" data-option-array-index="83" style="">1939</li><li class="active-result" data-option-array-index="84" style="">1938</li><li class="active-result" data-option-array-index="85" style="">1937</li><li class="active-result" data-option-array-index="86" style="">1936</li><li class="active-result" data-option-array-index="87" style="">1935</li><li class="active-result" data-option-array-index="88" style="">1934</li><li class="active-result" data-option-array-index="89" style="">1933</li><li class="active-result" data-option-array-index="90" style="">1932</li><li class="active-result" data-option-array-index="91" style="">1931</li><li class="active-result" data-option-array-index="92" style="">1930</li><li class="active-result" data-option-array-index="93" style="">1929</li><li class="active-result" data-option-array-index="94" style="">1928</li><li class="active-result" data-option-array-index="95" style="">1927</li><li class="active-result" data-option-array-index="96" style="">1926</li><li class="active-result" data-option-array-index="97" style="">1925</li><li class="active-result" data-option-array-index="98" style="">1924</li><li class="active-result" data-option-array-index="99" style="">1923</li><li class="active-result" data-option-array-index="100" style="">1922</li><li class="active-result" data-option-array-index="101" style="">1921</li><li class="active-result" data-option-array-index="102" style="">1920</li><li class="active-result" data-option-array-index="103" style="">1919</li><li class="active-result" data-option-array-index="104" style="">1918</li><li class="active-result" data-option-array-index="105" style="">1917</li><li class="active-result" data-option-array-index="106" style="">1916</li><li class="active-result" data-option-array-index="107" style="">1915</li><li class="active-result" data-option-array-index="108" style="">1914</li><li class="active-result" data-option-array-index="109" style="">1913</li><li class="active-result" data-option-array-index="110" style="">1912</li><li class="active-result" data-option-array-index="111" style="">1911</li><li class="active-result" data-option-array-index="112" style="">1910</li><li class="active-result" data-option-array-index="113" style="">1909</li><li class="active-result" data-option-array-index="114" style="">1908</li><li class="active-result" data-option-array-index="115" style="">1907</li><li class="active-result" data-option-array-index="116" style="">1906</li><li class="active-result" data-option-array-index="117" style="">1905</li><li class="active-result" data-option-array-index="118" style="">1904</li><li class="active-result" data-option-array-index="119" style="">1903</li><li class="active-result" data-option-array-index="120" style="">1902</li><li class="active-result" data-option-array-index="121" style="">1901</li><li class="active-result" data-option-array-index="122" style="">1900</li></ul></div></div>
<span id="MainContent_RequiredFieldValidator2" style="color:Red;visibility:hidden;">Required</span>
</div>
<select name="ctl00$MainContent$ddlscopegroupp" onchange="javascript:setTimeout('__doPostBack(\'ctl00$MainContent$ddlscopegroupp\',\'\')', 0)" id="MainContent_ddlscopegroupp" class="chosen-select select_styled" style="display: none;">
<option selected="selected" value="0">--Select Product Material--</option>
<option value="Others">Others</option>
</select>
<div class="chosen-container chosen-container-single chosen-with-drop chosen-container-active" style="width:100%;" title="" id="MainContent_ddlscopegroupp_chosen"><a class="chosen-single"><span>--Select Product Material--</span><div><b></b></div></a><div class="chosen-drop"><div class="chosen-search"><input type="text" autocomplete="off"></div><ul class="chosen-results"><li class="active-result result-selected highlighted" data-option-array-index="0" style="">--Select Product Material--</li><li class="active-result" data-option-array-index="1" style="">Others</li></ul></div></div>
I am using VBA, code below:
Sub t1()
Dim Driver As New Selenium.ChromeDriver
Set Driver = CreateObject("Selenium.ChromeDriver")
Driver.Get "https://nablwp.qci.org.in/Test-Lab/ScopeOfAccreditation"
Driver.FindElementById("MainContent_btnViewScope").Click
Driver.FindElementById("MainContent_ddlScopeDisci").SendKeys "Electronics"
Driver.FindElementById("MainContent_ddlScopeGroup").SendKeys "EMC Test Facility"
Driver.FindElementById("MainContent_ddlsbGrp").SendKeys "Radiated Emission Test"
Driver.FindElementById("MainContent_txtScopeStand").ScrollIntoView
SetCursorPos 700, 710
SingleClick
SetCursorPos 700, 860
SingleClick
'Below element is another uninteractable one. I am managing it with a mouse click. Luckily, it has only one option in the dropdown, so mouse click works.
Driver.FindElementById("MainContent_txtScopeGroup").SendKeys "IT"
Driver.FindElementById("MainContent_txtScopeTestPer").SendKeys "Radiated Emission Test"
Driver.FindElementById("MainContent_txtScopeStand").SendKeys "CISPR 32:2015/AMD1"
Driver.FindElementById("MainContent_txtScopeRangeRem").ScrollIntoView
SetCursorPos 800, 800
SingleClick
SetCursorPos 800, 940
SingleClick
'Below element is another uninteractable one. Mouse click method does not work here, as it has options from year 1900 to 2021!!!
Driver.FindElementByCss("input#MainContent_ddlScopeYear_chosen").SendKeys "2019"
Driver.FindElementById("MainContent_ddlRangeType").SendKeys "Quantitative"
Driver.FindElementById("MainContent_txtScopeRangeLL").SendKeys "30"
Driver.FindElementById("MainContent_btnllUnit").Click
Driver.FindElementById("MainContent_htmext1_ExtenderCOntentEditable").SendKeys "MHz"
Driver.FindElementById("MainContent_btnShowLL").Click
End Sub'
I am stepping through the code, and it still does not work, so it does not appear to be time related that can be solved by Wait.
"Display: none" property seems to be creating the issue, need help in solving it in VBA. Thank you.

beautiful soup td class name is same and I need to get the value from 1st to 4th value by text

I want to study crawling with selenium and beautiful soup.
I did successfully accessing the website and logged in.
And I tried to get some value by text but it doesn't work.
This is the code that I made.
all3=soup.find("td",{"class": " text-right txt-r"}).text
print(all3)
all4=soup.find("td",{"class": " text-right txt-r"}).text
print(all4)
This is the website coding as follows. I want to get the value from 1st to 4th values by text. However, td class name is same, so I don't know how to get parsing the date with soup.
<td class=" text-right txt-r">7,730</td>
<td class=" text-right txt-r">33,500</td>
<td class=" text-right txt-r">72.8</td>
<td class=" text-right txt-r">88</td>
<td class=" text-right txt-r">0.72%</td>
<td class=" text-right txt-r">0.22%</td>
<td class=" text-center txt-c">높음</td>
<td class=" text-right txt-r">15</td>
I want to make the result as follows.
Print(all3)
Print(all4)
Print(all5)
Print(all6)
7,730, 33,500, 72.8, 88

Make correct layout for TextView and ImageView

What Layouts need use for make this?
HTML
<h1>Title</h1>
<div id="itemWrapper">
<div class="item">
<div class="png">
<img src="xxx.png">
</div>
<div class="text">
text text text text text text text text text text
</div>
</div>
<div class="item">
<div class="png">
<img src="xxx.png">
</div>
<div class="text">
text text text text text text text text text text
</div>
</div>
<div class="item">
<div class="png">
<img src="xxx.png">
</div>
<div class="text">
text text text text text text text text text text
</div>
</div>
<div class="item">
<div class="png">
<img src="xxx.png">
</div>
<div class="text">
text text text text text text text text text text
</div>
</div>
</div>
CSS
.item{clear:both;}
.item .png{float:left;height:50px}
.item .text{float:left;height:50px}
h1{text-align:center}

How to click random links one by one inside a table

I am automating a site in which I want to click on the links inside a table.
In UI, the table showing like this:
Action Contract Line Item Number Product Product Code
Edit | Del CLI-757042 OpenTable System (Guest Center) SYS010
Edit | Del CLI-757043 Guests Seated from Online GC
I want to click the links CLI-757042,CLI-757043,CLI-757044 one by one. The numbers are random.
Below is the html code:
<!-- WrappingClass -->
<div class="listRelatedObject customnotabBlock"><div class="bPageBlock brandSecondaryBrd secondaryPalette"><div class="pbHeader"> … </div><div id="800f00000006cQt_00Na000000ASdVK_body" class="pbBody"><table class="list" cellspacing="0" cellpadding="0" border="0"><tbody><tr class="headerRow"> … </tr>
<!-- ListRow -->
<tr class="dataRow even first" onmouseover="if (window.hiOn){hiOn(this);}" onmouseout="if (window.hiOff){hiOff(this);}" onfocus="if (window.hiOn){hiOn(this);}" onblur="if (window.hiOff){hiOff(this);}"><td class="actionColumn"> … </td><th class=" dataCell " scope="row"><a href="/a1if0000000ZfEv">
CLI-757042
</a></th><td class=" dataCell "> … </td><td class=" dataCell "> … </td><td class=" dataCell CurrencyElement"> … </td><td class=" dataCell "> … </td><td class=" dataCell CurrencyElement"> … </td><td class=" dataCell numericalColumn"> … </td><td class=" dataCell numericalColumn"> … </td><td class=" dataCell CurrencyElement"> … </td><td class=" dataCell "> … </td></tr>
<!-- ListRow -->
<tr class="dataRow odd" onmouseover="if (window.hiOn){hiOn(this);}" onmouseout="if (window.hiOff){hiOff(this);}" onfocus="if (window.hiOn){hiOn(this);}" onblur="if (window.hiOff){hiOff(this);}"><td class="actionColumn"> … </td><th class=" dataCell " scope="row"> … </th><td class=" dataCell "> … </td><td class=" dataCell "> … </td><td class=" dataCell CurrencyElement"> … </td><td class=" dataCell "> … </td><td class=" dataCell CurrencyElement"> … </td><td class=" dataCell numericalColumn"> … </td><td class=" dataCell numericalColumn"> … </td><td class=" dataCell CurrencyElement"> … </td><td class=" dataCell "> … </td></tr>
<!-- ListRow -->
<tr class="dataRow even" onmouseover="if (window.hiOn){hiOn(this);}" onmouseout="if (window.hiOff){hiOff(this);}" onfocus="if (window.hiOn){hiOn(this);}" onblur="if (window.hiOff){hiOff(this);}"> … </tr>
<!-- ListRow -->
<tr class="dataRow odd" onmouseover="if (window.hiOn){hiOn(this);}" onmouseout="if (window.hiOff){hiOff(this);}" onfocus="if (window.hiOn){hiOn(this);}" onblur="if (window.hiOff){hiOff(this);}"> … </tr>
<!-- ListRow -->
<tr class="dataRow even last" onmouseover="if (window.hiOn){hiOn(this);}" onmouseout="if (window.hiOff){hiOff(this);}" onfocus="if (window.hiOn){hiOn(this);}" onblur="if (window.hiOff){hiOff(this);}"> … </tr></tbody></table><div class="pShowMore"> … </div></div><div class="pbFooter secondaryPalette"> … </div></div></div><div class="listElementBottomNav"></div><script> … </script>
<!-- End ListElement -->
</div>
<!-- End RelatedListElement -->
<!-- Begin RelatedListElement -->
<div id="800f00000006cQt_00Na000000ASdVM" class="bRelatedList"><a name="800f00000006cQt_00Na000000ASdVM_target"></a>
<!-- Begin ListElement -->
<!-- motif: Contract -->
<!-- WrappingClass -->
<div class="listRelatedObject Custom18Block"><div class="bPageBlock brandSecondaryBrd secondaryPalette"><div class="pbHeader"><table cellspacing="0" cellpadding="0" border="0"><tbody><tr><td class="pbTitle"><img class="minWidth" width="1" height="1" title="" alt="" src="/s.gif"></img><img class="relatedListIcon" title="Order" alt="Order" src="/s.gif"></img><h3 id="800f00000006cQt_00Na000000ASdVM_title"> … </h3></td><td class="pbButton"> … </td><td class="pbHelp"> … </td></tr></tbody></table></div><div id="800f00000006cQt_00Na000000ASdVM_body" class="pbBody"> … </div><div class="pbFooter secondaryPalette"> … </div></div></div><div class="listElementBottomNav"></div><script> … </script>
<!-- End ListElement -->
</div>
<!-- End RelatedListElement -->
<!-- Begin RelatedListElement -->
<div id="800f00000006cQt_00Na000000ASdVR" class="bRelatedList"> … </div>
<!-- End RelatedListElement -->
<!-- Begin RelatedListElement -->
<div id="800f00000006cQt_RelatedActivityList" class="bRelatedList"> … </div>
<!-- End RelatedListElement -->
<!-- Begin RelatedListElement -->
<div id="800f00000006cQt_RelatedHistoryList" class="bRelatedList"> … </div>
<!-- End RelatedListElement -->
<!-- Begin RelatedListElement -->
<div id="800f00000006cQt_00Na000000AT3VB" class="bRelatedList"> … </div>
<!-- End RelatedListElement -->
<!-- Begin RelatedListElement -->
<div id="800f00000006cQt_RelatedNoteList" class="bRelatedList"> … </div>
<!-- End RelatedListElement -->
<!-- Begin RelatedListElement -->
<div id="800f00000006cQt_00N3000000A6gu9" class="bRelatedList"> … </div>
<!-- End RelatedListElement -->
<!-- Begin RelatedListElement -->
<div id="800f00000006cQt_RelatedEntityHistoryList" class="bRelatedList"> … </div>
<!-- End RelatedListElement -->
<div class="fewerMore"> … </div><script> … </script>
<!-- Body events -->
<script type="text/javascript"> … </script><div id="datePicker" class="datePicker"> … </div>
<!-- End page content -->
</td></tr></tbody></table></div><div class="bPageFooter noTableFooter"> … </div><div></div></div><script> … </script><script src="/jslibrary/1402506602000/sfdc/ChatterDefer.js" defer="true"></script><script src="/jslibrary/1404472812000/sfdc/Zen.js" defer="true"></script><script> … </script><script async="" defer="" src="/jslibrary/1400606638000/sfdc/SfdcSessionBase190.js"></script><iframe title="sessionserver" style="position: absolute; top: -999px; left: -999px;" src="https://test.salesforce.com/login/sessionserver190.html"></iframe><div id="devSlide" style="display: block;"> … </div><div id="InlineEditDialog" class="overlayDialog cssDialog inlineEditDialog" role="dialog" aria-live="assertive" aria-describedby="InlineEditDialogTitle" style="margin-top: 0px; margin-left: 0px;"> … </div>
When I inspect element in the 1st link it shows table with class=datacell. But there are 2-3 more tables in the page with same class name.
You can use the links method to collect the links and then iterate through the link collection.
Here's a contrived table as an example:
<table class="foo"><tr>
<td>one</td>
<td>two</td>
</tr></table>
<table class="foo"><tr>
<td>three</td>
<td>four</td>
</tr></table>
<table class="bar"><tr>
<td>five</td>
<td>six</td>
</tr></table>
You can collect all the links on the page or target a specific table based on its class attribute or index position.
# print the text attribute for all links
b.links.each { |link| puts link.text}
#=> one
#=> two
#=> three
#=> four
#=> five
#=> six
# print the text attribute for links in the table with a class attribute of "foo"
b.table(:class => "foo").links.each { |link| puts link.text}
#=> one
#=> two
# print the text attribute for links in the table with a index position of 1
b.table(:index => 1).links.each { |link| puts link.text}
#=> three
#=> four
# print the text attribute for links in the table with a class attribute of "bar"
b.table(:class => "bar").links.each { |link| puts link.text}
#=> five
#=> six
In theory--once you've collected the appropriate set of links--you can iterate through the links and click them (although I find this prone to StaleElementReferenceError errors).

Theming D7 Nice Menus Subchildren by Taxonomy Term

I have been pondering on how to modify the default output of Nice Menus' list elements and make each <li> group a list of nodes by taxonomy term. This is the default output of a sub-menu:
<ul>
<li>Test 1</li>
<li>Test 2</li>
<li>Parent
<ul>
<li>Sub 1</li>
<li>Sub 2</li>
<li>Sub 3</li>
<li>Sub 4</li>
<li>Sub 5</li>
<li>Sub 6</li>
</ul>
</li>
<li>Test 3</li>
</ul>
My goal is to group sub-children based on a taxonomy term such as:
<ul>
<li>Test 1</li>
<li>Test 2</li>
<li>Parent
<ul>
<li>
<h3>Term 1</h3>
Sub 1
Sub 2
Sub 3
</li>
<li>
<h3>Term 2</h3>
Sub 4
Sub 5
Sub 6
</li>
</ul>
</li>
<li>Test 3</li>
</ul>
How can I customize this on template.php?
there's some nice hook code in here which allow you to alter menu links and menu tree

Resources