【问题标题】:how to select jquery unorderded drop down list selenium webdriver如何选择jquery无序下拉列表selenium webdriver
【发布时间】:2017-01-31 17:48:41
【问题描述】:

我是使用 Java 的新 selenium webdriver。如果它有正常的选择类,我可以编写java代码来选择下拉菜单:-

new Select(driver.findElement(By.id("someid"))).selectByValue("1"));

但下面的代码有来自 jquery 的 select2 类。尝试了多种选择。从那时起我可以选择显示下拉菜单,我无法选择 Apple 或 Orange,或者选择葡萄。

有人可以帮我从这种下拉列表中选择 Apple 吗?非常感谢任何线索或代码。 ..

这就是代码的样子

<div id="select2-drop" class="select2-drop select2-display-none select2-with-searchbox select2-drop-active" style="somestyleelements">
	<div class="select2-search">
		<ul id="select2-results-1" class="select2-results" role="listbox">
			<li class="select2-results-dept-0 select2-result select2-result-selectable select2-highlighted" role="presentation">
				<div id="select2-result-label-random" class="select2-result-label" role="option">
					<span class="select2-match"></span>
						Apples
				</div>
			</li>
			<li class="select2-results-dept-0 select2-result select2-result-selectable" role="presentation">
				<div id="select2-result-label-random" class="select2-result-label" role="option">
					<span class="select2-match"></span>
						Orange
				</div>	
			<li class="select2-results-dept-0 select2-result select2-result-selectable" role="presentation">
			<li class="select2-results-dept-0 select2-result select2-result-selectable" role="presentation">
			<li class="select2-results-dept-0 select2-result select2-result-selectable" role="presentation">
		</ul>
</div>

提前致谢

【问题讨论】:

    标签: java jquery selenium-webdriver drop-down-menu jquery-select2


    【解决方案1】:

    Select() 类仅适用于 &lt;select&gt; 标记元素。所以你不能在这里使用Select() 类。你应该尝试如下:-

    WebDriverWait wait = new WebDriverWait(driver, 10);
    
    //First click on dropdown to show options 
    WebElement dropdown = wait.until(ExpectedConditions.presenceOfElementLocated(By.id("select2-drop")));
    dropdown.click();
    
    //Now find desired option and click 
    wait.until(ExpectedConditions.elementToBeClickable(By.xpath(".//li[normalize-space(.) = 'Apples']"))).click();
    

    【讨论】:

    • 像魅力一样工作。非常感谢。!!您能否对这部分代码有所了解。只是想了解更多,对不起,如果它是基本的......“.//li[normalize-space(.) - 这个 normalize-space 有什么作用以及为什么有点?
    • 它只是 xpath 函数,用于避免元素文本内容的额外空格,点表示它只匹配任何元素内的确切文本内容,无论欲望元素内存在多少其他元素,有关更多详细信息,请点击此链接w3.org/TR/xpath/#function-normalize-space
    • @coolgokul 了解更多关于点have a look here的信息。谢谢
    猜你喜欢
    • 1970-01-01
    • 2015-05-19
    • 1970-01-01
    • 2021-01-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-02-22
    相关资源
    最近更新 更多