Python 蟒蛇碎片。如何选择选项部分中没有名称的下拉列表
我尝试从下拉列表中选择本地主机,其中包含以下html代码:Python 蟒蛇碎片。如何选择选项部分中没有名称的下拉列表,python,splinter,Python,Splinter,我尝试从下拉列表中选择本地主机,其中包含以下html代码: <select id="server_select"> <option></option> <option> Local Host </option> <option> ah005 </option> </select> 我得到了一个错误: Traceback (
<select id="server_select">
<option></option>
<option>
Local Host
</option>
<option>
ah005
</option>
</select>
我得到了一个错误:
Traceback (most recent call last):
File "splinter_test.py", line 22, in <module>
server_list = browser.find_by_xpath('//select[@id="server_select"]//option[@selected="Local Host"]').first
File "/Users/Bibo_MBPR/anaconda/lib/python2.7/site-packages/splinter/element_list.py", line 53, in first
return self[0]
File "/Users/Bibo_MBPR/anaconda/lib/python2.7/site-packages/splinter/element_list.py", line 44, in __getitem__
self.find_by, self.query))
splinter.exceptions.ElementDoesNotExist: no elements could be found with xpath "//select[@id="server_select"]//option[@selected="Local Host"]"
有人能给我一些建议吗?谢谢命名选项通常非常有用。但是当它们不存在时,您必须迭代这些选项以找到正确的选项
dropdown = browser.find_by_xpath("//select[@id='server_select']")
for option in dropdown.find_by_tag('option'):
if option.text == "Local Host":
option.click()
break
在比较option.text之前,您可能需要调用strip,以防它包含额外的空白
如果顶部的空选项给您带来了问题,那么我会将if的大小写改为option.text不是None,option.text==本地主机。您可以使用find\u by\u id获取下拉列表中的浏览器元素,因为它有id=server\u select选项。然后,您可以通过文本从中选择您的选项。试试下面的方法-
server_list = browser.find_by_id('server_select')
server_list.select_by_text("Local Host")
或者
server_list = browser.find_by_id('server_select')
server_list.select_by_text("Local Host")
browser.find_option_by_text("Local Host").first.click()