Python Selenium统计列表框中的项目数

2024-09-30 16:27:30 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图计算网页列表框中的项目数,然后从该列表框中选择多个项目。我可以选择的项目很好,我只是努力找出如何计数项目在列表框。在

参见代码:

from selenium import webdriver
from selenium.webdriver.support.ui import Select

。。。在

^{pr2}$

我尝试过使用len(),这会导致错误“TypeError:Select”类型的对象没有len()。在

我也试过了accountListBox.size()还删除了第3行中的“Select”,它也不起作用。在

很新的,所以很感谢你的反馈。在

谢谢!在


Tags: 项目代码fromimportui网页supportlen
3条回答

我通常用硒来配靓汤。Beautiful Soup是一个用于解析HTML和XML文档的Python包。

使用Beautiful Soup,您可以通过以下方式获得列表框中的项目数:

from bs4 import BeautifulSoup
from selenium import webdriver

driver = webdriver.PhantomJS() # or webdriver.Firefox()
driver.get('http://some-website.com/some-page/')

html = driver.page_source.encode('utf-8')
b = BeautifulSoup(html, 'lxml')
items = b.find_all('p', attrs={'id':'ctl00_MainContent_accountItemsListBox'})
print(len(items))

我假设您要查找的DOM元素是一个段落(p标记),但是您可以用需要查找的任何元素替换它。

根据docs,可以通过说select.options获得Select元素的选项列表。在您的特定情况下,这将是accountListBox.options,您需要在上调用len(),而不是在{}实例本身上调用:

print(len(accountListBox.options))

或者,如果只想打印当前选定选项的列表:

^{pr2}$

您应该使用find_elements,方法是对每个列表框的项使用一些通用选择器来查找所有这些项,将找到的元素存储到一个变量中,并使用本机python的库对它们进行计数。

相关问题 更多 >