python - Python Selenium 循环通过选择菜单
问题描述
我需要遍历此页面上的选择菜单:
https://printcopy.info/?mod=erc&brand=Kyocera&model=TASKalfa+307ci&page=1
选择菜单有一个 display: none 所以我做了以下来获取值:
element = driver.find_element_by_id('selectNumPages')
driver.execute_script("return arguments[0].removeAttribute('style');", element)
select = Select(driver.find_element_by_id('selectNumPages'))
for opt in select.options:
print(opt.text)
这会输出选择菜单中的每个值,现在我需要单击每个值,以便在每个页面上抓取数据。
我试过了:
button = driver.find_element_by_id("selectNumPages-button")
button.click()
这会单击选择菜单,但页面 url 不会改变
任何帮助将不胜感激。
更新
我最终使用了 ActionChains
解决方案
如果要循环浏览页面,则无需单击每个页面。您可以获取每个页面的 url
https://printcopy.info/?mod=erc&brand=Kyocera&model=TASKalfa+307ci&page=1
如您所见,有“page=1”。您可以使用它来循环浏览页面。有23页所以..
page_num = 23
for i in range(1,23):
pg = str(i)
driver.get('https://printcopy.info/?mod=erc&brand=Kyocera&model=TASKalfa+307ci&page='.pg)
然后只需选择您需要的项目。
PS我也是新手,如果我错了,请纠正我。
推荐阅读
- haskell - 这种类型是有效的“rank-2 双函子”吗?
- javascript - 用异步替换回调,并且只触发第一个承诺
- r - 计算 R 中每组连续连续值的长度
- kotlin - 如何在 Gradle 中从 uri 生成 openapi 客户端
- amazon-web-services - AWS S3 存储桶 - 允许从特定 AWS 账户将文件下载到每个 IAM 和用户
- python - Plotly:如何在绘图内/轴右侧设置 y 轴刻度标签?
- cakephp - cakephp 错误 找不到别名 xxx 的表类
- xml - Infinispan 11.x - 12.x XML 配置
- sql-server - SQL Server:存储过程返回一个包含 3 个项目的集合
- python - 使用python制作一个列表并仅限制单个字符的输入。如果用户输入两个字符,它将无效