是否有其他方法可以顺序单击列表中的所有web元素?

2024-10-03 00:24:16 发布

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

我正在尝试按顺序单击页面https://www.virginmobile.ca/en/phones/phone-details.html#!/xsiphone/Grey/64/TR20上的web元素。页面上有4或5种“计划类型”,如Diamond plus计划、Diamond计划、goled计划等,我试图点击这些类型,以便加载下面的计划,但它似乎卡在Diamond plus计划和自带电话计划上。有时,它会迭代某些计划类型,但会跳过其他计划类型。我在过去使用过这段代码,但是它不再像我希望的那样工作。我希望能够按顺序单击每种计划类型并等待一秒钟(已经完成),然后继续下一种计划类型。动作链是我的首选。click()但是这似乎不再有效

这是我的密码:


        planTypeRawList = wait.until(EC.presence_of_all_elements_located((By.CSS_SELECTOR, '.ng-scope.ng-isolate-scope .phonePriceInner')))

        for planTypeIndex, planType in enumerate(planTypeRawList):
            print("-----------------  " + planTypeNameList[planTypeIndex] + "  ------------------")

            ActionChains(driver).move_to_element(planType).click().perform()

            time.sleep(1)

'''

Tags: https类型顺序wwwplus页面ng计划
1条回答
网友
1楼 · 发布于 2024-10-03 00:24:16

在单击之前,可以使用location_once_scrolled_into_viewscrollIntoView滚动到元素

plan_levels = wait.until(EC.visibility_of_all_elements_located((By.CSS_SELECTOR, 'planlevels .phonePrice')))
for plan in plan_levels:
    plan.location_once_scrolled_into_view
    # driver.execute_script("arguments[0].scrollIntoView();", plan)
    plan.click()
    time.sleep(2)

相关问题 更多 >