首页 > 解决方案 > 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

标签: pythonselenium

解决方案


如果要循环浏览页面,则无需单击每个页面。您可以获取每个页面的 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我也是新手,如果我错了,请纠正我。


推荐阅读