如何使用selenium获取选择值?

时间:2018-05-21 13:58:03

标签: python selenium

当我第一次点击按钮(带下拉列表)时,显示:

    <select name="loginfield" style="float: left; display: none;"         width="45" id="loginfield_LbS4K" change="changetip($('loginfield_LbS4K').value)" selecti="0">             

我需要获取第二个值并自动点击它。当我选择第二个下拉列表时 它显示:

    <select name="loginfield" style="float: left; display: none;" width="45" id="loginfield_LbS4K" change="changetip($('loginfield_LbS4K').value)" selecti="1">             

我使用python3.6 + selenium,但我仍然没有得到“第二个”vaule'frucs(用户名)。它仍然停在第一个foucs(昵称)

    el = driver.find_element_by_name('loginfield')
    for option in el.find_elements_by_name('option'):
    print (option)
      if option.value == 'username':
         option.click()
         break

请查看我的错误,谢谢。

html代码:

</style>
<div class="rfm">
<div id="username_" class="ui-tooltip ui-widget ui-widget-content" style="margin: -47px 0 0 130px; display: none;">
<div id="tip_c">login</div>
<div class="arrow"></div>
</div>
<table>
<tr>
<th>
<span class="login_slct">
<select name="loginfield" style="float: left;" width="45" id="loginfield_LG388" change="changetip($('loginfield_LG388').value)">
                                            <option value="nickname">account</option>
<option value="username">nickname</option>
<option value="mobile">phone</option>
<option value="email">Email</option>
</select>
</span>
</th>
<td><input type="text" name="username" id="username_LG388" autocomplete="off" size="30" class="px p_fre" tabindex="1" value="" onmouseover="display('username_')" onmouseout="display('username_')" placeholder="login"/></td>
<td class="tipcol"><a href="member.php?mod=register">register</a></td>
</tr>
</table>
<script type="text/javascript">
function changetip(v) {
if(v == 'nickname') {
$('tip_c').innerHTML = 'login';
}else if(v == 'mobile') {
$('tip_c').innerHTML = 'phone';
}else if(v == 'username') {
$('tip_c').innerHTML = 'nickname';
}else if(v == 'email') {
$('tip_c').innerHTML = 'email';
}
}

</script>

1 个答案:

答案 0 :(得分:0)

我估计如果您提供select标签的完整HTML代码,那么这里的人可以调试并为您提供正确的解决方案。我将利用这个机会并使用selenium Select类重写代码,因为我相信它提供了一个很好的实现来使用下拉框

看看它是否对您有所帮助

from selenium.webdriver.support.select import Select

el = Select(driver.find_element_by_name('loginfield'))
el.select_by_value('username')