0

我正在尝试按顺序单击页面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)

'''
4

1 回答 1

1

您可以在单击之前使用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)
于 2020-01-10T08:30:21.493 回答