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()
→ Ссылка