Как получить следующий перенаправленный URL-адрес в selenium python?

#python #selenium #automation #selenium-chromedriver

Вопрос:

Я новичок в StackOverflow, поэтому я постараюсь изо всех сил описать проблему.

Я нахожусь на странице https://www.google.com/ и вы знаете, что есть кнопка поиска. Я набрал свой запрос и нажал кнопку поиска с помощью selenium. Так что это займет некоторое время. Я хочу получить URL-адрес после завершения поиска. Это точно означает, как получить URL-адрес страницы после ее загрузки. Потому что позвольте мне объяснить…

  1. Страница с капчей. Я должен заполнить и нажать на кнопку Отправить
  2. Если капча верна, то в строке URL откроется другой URL-адрес.
  3. Но если капча неверна, то она останется на том же URL-адресе
  4. Поэтому я хотел знать, сработала капча или нет
  5. Если капча сработала, то она определенно перейдет на следующий URL-адрес.

Я пытался:

     try:
        WebDriverWait(self.driver, 2).until(EC.url_changes('https://www.mystaticurl.com/aftercaptchafilled'))
        print('Captcha Accepted')
    except TimeoutException:
        print('[Captcha Error : Solving captcha code]')
        self.Fill_captcha_function()
 

Но это не работает. Это все еще показывает, что капча заполнена
Кто-нибудь, пожалуйста?

заранее спасибо

Ответ №1:

После вашего действия, пожалуйста, получите текущий URL-адрес, используя следующий метод,

 driver.current_url
 

Комментарии:

1. это работает. Спасибо, чувак.

Ответ №2:

В дополнение к тому, что сказал Джаянт, я лично использовал этот метод.

 current = driver.current_url
failed = "https://www.google.com"
if current == failed:
    print("Still same url!")
if current != failed:
    print("New url!")
 

Вы также могли бы сделать

  driver.get("google.com")
 old = driver.current_url
 "captcha code here"
 new = driver.current_url
 if new == old:
     print("did not work :(")
 if new != old:
     print("YAY it worked :)")