简而言之,我需要自动从webform中选择下拉值。我尝试过使用:
$("td:contains(Gender)")
.closest('td')
.next()
.find('select')
.filter(function () { return $(this).html() == "Female"; })
.val();
(只是看看我是否可以返回任何内容并且说未定义)
并且
$("td:contains(Gender)")
.closest('td')
.next()
.find('select')
.find('option:contains(Female)')
.attr('selected', true)
(但这需要嵌套的find()才能工作
HTML看起来像:
<html>
<table>
<tr>
<td>Gender:</td>
<td>
<select>
<option>Male</option>
<option>Female</option>
</select>
</td>
</tr>
</table>
</html>
缺点是由于构建webform的“独特”方式,我不能使用ID或类。我也知道我可能不能使用包含因男性和女性都包含“男性”。下拉列表中的值都是数值,所以我更喜欢我可以使用文本而不是映射值。
如果您想知道我是自动化工程师,那么我无法控制表单本身。
亲切的问候,
ķ
答案 0 :(得分:2)
你几乎是正确的,你不需要调用.closest('td')
,因为$("td:contains(Gender)")
将返回td
本身的jQuery对象。
$("td:contains(Gender)")
.next()
.find('select')
.find('option:contains(Female)')
.attr('selected', true)
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<html>
<table>
<tr>
<td>Gender:</td>
<td>
<select>
<option>Male</option>
<option>Female</option>
</select>
</td>
</tr>
</table>
</html>
&#13;