【问题标题】:how to get select option value using selenium?如何使用硒获取选择选项值?
【发布时间】:2018-05-21 13:58:03
【问题描述】:

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

    <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' foucs(用户名)。它仍然停留在第一个 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>

【问题讨论】:

  • 好像你给的HTML代码错误,因为样式display:none表示用户无法从页面看到它,所以用户如何操作它。请给出下拉列表的完整 HTML 代码,

标签: python selenium


【解决方案1】:

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

看看有没有帮助

from selenium.webdriver.support.select import Select

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-05-26
    • 2019-10-15
    • 1970-01-01
    • 2023-04-10
    • 1970-01-01
    • 2019-06-21
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多