selenium python for 循环只重复打印第一个元素

selenium python for loop printing only first element repeatedly

我正在尝试从此 page 获取商业信息。

在这里,我为每个项目选择主容器,然后使用 for 循环从每个容器中获取业务名称。

这是我的代码:

container = driver.find_elements_by_css_selector(".businessCapsule--mainRow")
for i in container:
    business_title = driver.find_element_by_css_selector('.text-h2')
    print(business_title) 

结果:

Mirror & Glass Processing Ltd
Mirror & Glass Processing Ltd
Mirror & Glass Processing Ltd
Mirror & Glass Processing Ltd

为什么它只重复打印第一项?我在上面的代码中哪里做错了。

如果我在不选择主容器的情况下尝试,那么它就可以工作。

business_title = driver.find_elements_by_css_selector(".text-h2")
for i in business_title:
        business_title = i.text
        print(business_title)

结果:

Mirror & Glass Processing Ltd
J.E.D Double Glazing Repairs
B & R Glazing Co.Ltd
Durham Window & Door Centre Ltd
Ken Rose Joinery & Glazing

在 for 循环代码块下你必须使用 i 而不是 driver

business_title = i.find_element_by_css_selector('.text-h2')