Я работаю с селеном, и внутри своей функции мне приходится выполнять некоторые операции несколько раз, дело в том, что когда я получаю 40 итераций на этой странице, селен ломается, и мне нужно перезапустить функцию. Я уже решил это, поместив переменную count, которая при достижении определенного количества итераций селен закроет контроллер и снова откроет его, но вот проблема, когда это произойдет, элемент в for l oop, где Переменная count соответствует условию, которое не выполняется при перезапуске селена, это переходит к следующему элементу в моем списке.
Вот мой код:
import os
import time
from selenium import webdriver
def prueba(n=2):
chromeOptions = webdriver.ChromeOptions()
chromeOptions.add_experimental_option('useAutomationExtension', False)
chromeOptions.add_argument('log-level=3')
chromeOptions.add_argument('--ignore-certificate-errors')
prefs = {"download.default_directory": os.getcwd(),
"directory_upgrade": True}
chromeOptions.add_experimental_option("prefs", prefs)
driver = webdriver.Chrome(chrome_options=chromeOptions, desired_capabilities=chromeOptions.to_capabilities(),executable_path='/Users/kev/Documents/Proyectos/Selenium/chromedriver')
driver.get("https://www.google.com.mx/")
count = 0
for i in ['a', 'b', 'c', 'd']:
if count < n:
if i == 'a':
try:
driver.get("https://www.youtube.com")
print('a')
time.sleep(1)
except Exception as e:
print(e)
elif i == 'b':
try:
driver.get("https://www.facebook.com")
print('b')
time.sleep(1)
except Exception as e:
print(e)
elif i == 'c':
try:
driver.get("https://www.twitter.com")
print('c')
time.sleep(1)
except Exception as e:
print(e)
else:
try:
driver.get("https://www.instagram.com")
print('d')
time.sleep(1)
except Exception as e:
print(e)
count+=1
print(count)
else:
count = 0
driver.close()
print('Esperando 5 segundos...')
time.sleep(2)
driver = webdriver.Chrome(chrome_options=chromeOptions, desired_capabilities=chromeOptions.to_capabilities(),executable_path='/Users/kev/Documents/Proyectos/Selenium/chromedriver')
driver.get("https://www.google.com.mx/")
continue
prueba()
Итак, вот когда я запускаю свою функцию, все работает нормально, но когда я = 'c', переменная count соответствует, здесь функция переходит к оператору else, сбрасывая переменную count и Selenium, а при повторном запуске она переходит прямо в 'd' вместо продолжения с 'c'