While в питон игнорирует условие
Как оформить while таким образом, чтобы он заканчивал работу при определенном количестве безуспешных попыток трай, но при этом мог закончить раньше, если другая переменная будет условию соответствовать? Сейчас kk=1, но цикл не прекращается
def proverka():
kk = 0
i = 0
print("\nIP....")
global InfoIP
global InfoIP2
try:
driver.execute_script('window.open("https://2ip.ru/")')
driver.switch_to.window(driver.window_handles[1])
time.sleep(1)
while (kk != 1) or (i != 10):
try:
time.sleep(1)
InfoIP[0] = driver.find_element(By.XPATH, '//*[@id="d_clip_button"]/span').text
InfoIP2[0] = driver.find_element(By.XPATH, '//*[@id="d_clip_button"]/span').text
except Exception:
i += 1
else:
kk = 1
print("kk")
if i == 10:
driver.close()
driver.switch_to.window(driver.window_handles[0])
work()
Ответы (1 шт):
Автор решения: 宏zxc god宏︎
→ Ссылка
Предлагаю вам вместо кода в блоке else: использовать break, результат в вашем случае будет таким же. Полный код:
def proverka():
kk = 0
i = 0
print("\nIP....")
global InfoIP
global InfoIP2
try:
driver.execute_script('window.open("https://2ip.ru/")')
driver.switch_to.window(driver.window_handles[1])
time.sleep(1)
while (kk != 1) or (i != 10):
try:
time.sleep(1)
InfoIP[0] = driver.find_element(By.XPATH, '//*[@id="d_clip_button"]/span').text
InfoIP2[0] = driver.find_element(By.XPATH, '//*[@id="d_clip_button"]/span').text
except Exception:
i += 1
else:
break
if i == 10:
driver.close()
driver.switch_to.window(driver.window_handles[0])
work()