Я занимаюсь веб-обработкой https://www.virginmobile.ca/en/phones/phone-details.html#!/a70/Black/128/MTH. Я пытаюсь получить цену в разделе "Выберите свой ежемесячный телефонный план", однако, когда я выбираю опцию "купить свой телефон авансом", в планах ниже есть кнопка "посмотреть больше планов" которую я пытаюсь нажать. Мне удалось щелкнуть по нему, однако иногда есть еще планы, и мой цикл while, кажется, не щелкает по нему, если кнопка все еще существует. вместо этого трассировка гласит:
Элемент showitems "ng-click =" showmoreplans () "ng-bind-html =" messages ['phonedetail.seemoreplan.label'] "class =" ng-binding ng-scope "> ... не активируется в точке (620, 870). Другой элемент получит щелчок: ...
for planType in planTypeRawList:
planPriceList = []
ActionChains(driver).move_to_element(planType).click().perform()
time.sleep(0.5)
while True:
try:
see_more_plans = wait.until(EC.presence_of_all_elements_located((By.CSS_SELECTOR, '#planList > a')))
see_more_plans[0].click()
print('see More Clicked')
time.sleep(0.5)
except TimeoutException:
break
planPriceListRaw = wait.until(EC.presence_of_all_elements_located((By.CSS_SELECTOR, '#planList .price')))
for price in planPriceListRaw:
planPrice = price.text
planPriceList.append(planPrice)
print(planPriceList)
print('end of plan type')
В конечном итоге я хотел бы иметь возможность нажимать на опцию «видеть больше планов» столько раз, сколько она появляется, а затем переходить к очистке после того, как все планы будут видны и кнопка исчезнет.