0

i have unordered list where when i click the element it will show the result here is the html page

<div class="dataTables_length col s12" id="dataTables-1_length"><label>Show</label><div class="select-wrapper"><span class="caret">▼</span><input type="text" class="select-dropdown" readonly="true" data-activates="select-options-49a1af1e-da84-b5fc-3c3f-ce38dc701d6a" value="10" wtx-context="444F3577-1027-491E-8B1A-08A1D49E2E7E"><ul id="select-options-49a1af1e-da84-b5fc-3c3f-ce38dc701d6a" class="dropdown-content select-dropdown" style="width: 382px; position: absolute; top: 0px; left: 0px; opacity: 1; display: none;"><li class="active"><span>10</span></li><li class=""><span>25</span></li><li class=""><span>50</span></li><li class=""><span>100</span></li></ul><select name="dataTables-1_length" aria-controls="dataTables-1" class="initialized" wtx-context="3DE7F091-A80A-4AB0-8CB0-0B8D71C12B52"><option value="10">10</option><option value="25">25</option><option value="50">50</option><option value="100">100</option></select></div></div>

hre is what i have already tried with c# using selenium

driver.FindElementsByXPath("//ul[@class='dropdown-content select-dropdown']")[0].Click();
driver.FindElementsByXPath("//span[contains(text(),'100')]")[0].Click();

But the above code still fails. Then i try second using below code:

var select = driver.FindElementsByXPath("//input[@class='select-dropdown']")[0];
select.SendKeys("100");
select.Click();

But it won't click.

I'm sure there is something wrong with my coded, I hope you can help me to resolve my issues.

Edit: actually there are 3 dropdown menus but i want to set the first only https://i.stack.imgur.com/UBcZt.jpg so i use index [0]

here is the complete html

i want to get "Show" and set value to be 100

<div class="col s12 m3 ">
            <div class="filtercontainer grey lighten-4"><h6>Filter Soal</h6><div class="row filter_row">
            <div id="dataTables-1_filter" class="dataTables_filter col s12"><label>Search:<input type="search" class="" aria-controls="dataTables-1"></label>
            </div><div id="dataTables-1_tag" class="dataTables_tag col s12"><label>Kompetensi Dasar:<input id="searchkompetensidasar" type="search" class="tagit-hidden-field" aria-controls="dataTables-1"><ul class="tagit ui-widget ui-widget-content ui-corner-all"><li class="tagit-new"><input type="text" class="ui-widget-content ui-autocomplete-input" autocomplete="off"></li></ul></label></div>
            <div class="dataTables_length col s12" id="dataTables-1_length"><label>Show</label><div class="select-wrapper"><span class="caret">▼</span><input type="text" class="select-dropdown" readonly="true" data-activates="select-options-a128ff92-06b9-59c9-4821-45c1c25f8835" value="10"><ul id="select-options-a128ff92-06b9-59c9-4821-45c1c25f8835" class="dropdown-content select-dropdown "><li class=""><span>10</span></li><li class=""><span>25</span></li><li class=""><span>50</span></li><li class=""><span>100</span></li></ul><select name="dataTables-1_length" aria-controls="dataTables-1" class="initialized"><option value="10">10</option><option value="25">25</option><option value="50">50</option><option value="100">100</option></select></div></div></div>
            <div class="row filterrow1">
                <div id="placefortipefilter" class="input-field col s12">
                <div class="select-wrapper 0"><span class="caret">▼
                </span><input type="text" class="select-dropdown" readonly="true" data-activates="select-options-5b4dd233-a0a6-e59c-dbf0-fd3d648ef3b0" value="Semua">
                <ul id="select-options-5b4dd233-a0a6-e59c-dbf0-fd3d648ef3b0" class="dropdown-content select-dropdown "><li class=""><span>Semua</span></li><li class=""><span>PG</span></li></ul><select class="0 initialized"><option value="">Semua</option><option value="PG">PG</option></select></div><label>Tipe :</label></div>


                <div id="placeforlevelfilter" class="input-field col s12"><div class="select-wrapper 0"><span class="caret">▼</span><input type="text" class="select-dropdown" readonly="true" data-activates="select-options-d25e1b45-8e8c-45f2-436b-aaea2182da92" value="Semua"><ul id="select-options-d25e1b45-8e8c-45f2-436b-aaea2182da92" class="dropdown-content select-dropdown "><li class=""><span>Semua</span></li><li class=""><span>Mudah</span></li><li class=""><span>Sedang</span></li><li class=""><span>Sulit</span></li></ul><select class="0 initialized"><option value="">Semua</option><option value="Mudah">Mudah</option><option value="Sedang">Sedang</option><option value="Sulit">Sulit</option></select></div><label>Level :</label></div>


                <div id="placeforkdfilter" class="input-field col s12">
                    &nbsp;
                    <!-- <select>
                      <option value="" disabled selected>Semua </option>
                      <option value="1">Semua</option>
                      <option value="2">Pilihan Ganda</option>
                      <option value="3">Essay</option>
                    </select>
                    <label>Kompetensi Dasar</label> -->
                </div>
            </div>
            </div>
        </div>

2 Answers2

0

Try this:

driver.FindElementsByXPath("//select[@class='initialized']").Click();
driver.FindElementsByXPath("//option[@value='100']").Click();
IPolnik
  • 619
  • 5
  • 13
  • hi there i have tried with your solution i got something like this Unhandled Exception: OpenQA.Selenium.ElementNotInteractableException: element not interactable (Session info: chrome=80.0.3987.132) at OpenQA.Selenium.Remote.RemoteWebDriver.UnpackAndThrowOnError(Response errorResponse) at OpenQA.Selenium.Remote.RemoteWebDriver.Execute(String driverCommandToExecute, Dictionary`2 parameters) – umar alfath Mar 04 '20 at 21:24
  • hrere is what i tried driver.FindElementsByXPath("//select[@class='initialized']")[0].Click(); driver.FindElementsByXPath("//option[@value='100']")[0].Click(); – umar alfath Mar 04 '20 at 21:25
  • why u keep adding [0] index? – IPolnik Mar 04 '20 at 21:35
0
driver.FindElementsByXPath("//div[@id='dataTables-1_length']//div[@class='select-wrapper']").Click();
driver.FindElementsByXPath("//li//span[text()='100']").Click();

If i understood and checked the html properly, then this should set you on the right track. Let me know if it works.

rrawoot
  • 1
  • 2