0

我需要为下拉框编写脚本。同一屏幕上有两个下拉元素,并且两个下拉框都有相似的类名(下拉框是搜索和选择类型),并且任何元素都没有唯一ID。所以脚本可以很好地从第一个下拉列表中选择元素,但是当它应该对第二个下拉列表执行相同的操作时它会失败。

回复

问候

<div class="title-edit-form" id="49156080-2097-ea0f">
<div class="control-group required">
<label class="control-label">Title
</label>
<div class="controls row-fluid">
<div class="select2-container span12 select2-container-active select2-dropdown-open"   id="s2id_title">    
<a href="#" onclick="return false;" class="select2-choice" tabindex="-1">   
<span>de</span>
<abbr class="select2-search-choice-close" style="display:none;">
</abbr>   
<div>
<b></b>
</div>
</a>    
</div>
<input class="span12" id="title" type="hidden" style="display: none;" value="-1">
</div>
</div>
<div class="select2-drop select2-drop-active" style="display: block; top: 177px; left: 536px; width: 530px;">   
<div class="select2-search">       
<input type="text" autocomplete="off" class="select2-input select2-focused" tabindex="-1" style="">   
</div>   
<ul class="select2-results">
<li class="select2-results-dept-0 select2-result select2-result-selectable select2-new">
<div class="select2-result-label">
<span class="select2-match">de</span>
</div>
</li>
<li class="select2-results-dept-0 select2-result select2-result-selectable">
<div class="select2-result-label">
<span class="select2-match">De</span>
"an"
</div>
</li>
<li class="select2-results-dept-0 select2-result select2-result-selectable select2-highlighted">
<div class="select2-result-label">
"Stu"
<span class="select2-match">de</span>
"nt"
</div>`enter code here`
</li>
</ul>
</div>
4

1 回答 1

1

最好的方法是cssSelector()用于那种东西,尤其是nth-child()来自cssSelector().

例子:

// gets the first div that contains school as a class value.
driver.findElement(By.cssSelector("div.school:nth-child(1)")); 

更多关于 cssSelector()

示例工作在这里-> JSfiddle

于 2013-05-21T06:52:03.440 回答