How to scroll down in dropdown window in selenium webdriver?

泪湿孤枕 提交于 2020-08-05 04:36:08

问题


<div id="boundlist-1277-listWrap" data-ref="listWrap" role="presentation" class="x-boundlist-list-ct x-unselectable x-no-touch-scroll x-scroll-container" style="overflow: auto; height: 298px;">
      <ul id="boundlist-1277-listEl" data-ref="listEl" class="x-list-plain x-scroll-scroller">
        <li role="option" unselectable="on" class="x-boundlist-item" tabindex="-1" data-recordindex="0" data-recordid="99400" data-boundview="boundlist-1280">Assessment Completion - Returned To Functional Validation</li>
<li role="option" unselectable="on" class="x-boundlist-item" tabindex="-1" data-recordindex="1" data-recordid="99401" data-boundview="boundlist-1280">Assessment Completion - Workflow Ended</li>
<li role="option" unselectable="on" class="x-boundlist-item" tabindex="-1" data-recordindex="2" data-recordid="99402" data-boundview="boundlist-1280">Eligibility Assessment In Progress</li>
<li role="option" unselectable="on" class="x-boundlist-item" tabindex="-1" data-recordindex="3" data-recordid="99403" data-boundview="boundlist-1280">Functional Validation In Progress</li>
<li role="option" unselectable="on" class="x-boundlist-item" tabindex="-1" data-recordindex="4" data-recordid="99404" data-boundview="boundlist-1280">Functional Validation- Returned To Sponsor</li>
<li role="option" unselectable="on" class="x-boundlist-item" tabindex="-1" data-recordindex="5" data-recordid="99405" data-boundview="boundlist-1280">MEA - Workflow Ended</li>
<li role="option" unselectable="on" class="x-boundlist-item" tabindex="-1" data-recordindex="6" data-recordid="99406" data-boundview="boundlist-1280">Pending Assessment Completion</li>
<li role="option" unselectable="on" class="x-boundlist-item" tabindex="-1" data-recordindex="7" data-recordid="99407" data-boundview="boundlist-1280">Pending Eligibility Assessment</li>
<li role="option" unselectable="on" class="x-boundlist-item" tabindex="-1" data-recordindex="8" data-recordid="99408" data-boundview="boundlist-1280">Pending Pre-MEA</li>
<li role="option" unselectable="on" class="x-boundlist-item" tabindex="-1" data-recordindex="9" data-recordid="99409" data-boundview="boundlist-1280">Pending Technical Validation</li>
<li role="option" unselectable="on" class="x-boundlist-item" tabindex="-1" data-recordindex="10" data-recordid="99410" data-boundview="boundlist-1280">Pending Validation Planning</li>
<li role="option" unselectable="on" class="x-boundlist-item" tabindex="-1" data-recordindex="11" data-recordid="99411" data-boundview="boundlist-1280">Pre-MEA - Pending Sponsor Response</li>
<li role="option" unselectable="on" class="x-boundlist-item" tabindex="-1" data-recordindex="12" data-recordid="99412" data-boundview="boundlist-1280">Pre-MEA - Workflow Ended</li>
<li role="option" unselectable="on" class="x-boundlist-item" tabindex="-1" data-recordindex="13" data-recordid="99413" data-boundview="boundlist-1280">Pre-MEA in Progress</li>
<li role="option" unselectable="on" class="x-boundlist-item" tabindex="-1" data-recordindex="14" data-recordid="99414" data-boundview="boundlist-1280">Technical Validation - Returned To Sponsor</li>
<li role="option" unselectable="on" class="x-boundlist-item" tabindex="-1" data-recordindex="15" data-recordid="99415" data-boundview="boundlist-1280">Technical Validation - Workflow Ended</li>
<li role="option" unselectable="on" class="x-boundlist-item" tabindex="-1" data-recordindex="16" data-recordid="99416" data-boundview="boundlist-1280">Technical Validation In Progress</li>
<li role="option" unselectable="on" class="x-boundlist-item x-boundlist-item-over" tabindex="-1" data-recordindex="17" data-recordid="99417" data-boundview="boundlist-1280">Validation Finalized - Workflow Closed</li>
<li role="option" unselectable="on" class="x-boundlist-item" tabindex="-1" data-recordindex="18" data-recordid="99418" data-boundview="boundlist-1280">Validation Initiated - MDDT Upload In Progress</li>
<li role="option" unselectable="on" class="x-boundlist-item" tabindex="-1" data-recordindex="19" data-recordid="99419" data-boundview="boundlist-1280">Validation Planning In Progress</li>
      </ul>
    </div>

Dropdown

How to scroll down in a drop down list? I want to select a drop down value which is in the drop down list. But i am not able to click it directly by using the xpath as the value is hidden down in the list for which i have to first scroll down.

I tried using this code

WebElement element = driver.findElement(By.xpath("//li[text()='Validation Finalized - Workflow Closed']"));
((JavascriptExecutor)driver).executeScript("arguments[0].scrollIntoView(true);", element);
Thread.sleep(500);

回答1:


You can use following code:

// Create an array of web element for all drop-down options
List<WebElement> optionList = driver.findElements(By.xpath("//*[@id='boundlist-1277-listEl']/li"));
// The option you mentioned in your example is stored at position #17 in an array so either you can manually enter the number or you can find it by running FOR lool
((JavascriptExecutor)driver).executeScript("arguments[0].scrollIntoView(true);", optionList.get(17) );

// Other ther way that I prefer is:
JavascriptExecutor je = (JavascriptExecutor) driver;
je.executeScrpt("arguments[0].scrollIntoView(true);", optionList.get(17) );
Thread.sleep(250);


来源:https://stackoverflow.com/questions/42645027/how-to-scroll-down-in-dropdown-window-in-selenium-webdriver

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!