Перезагрузите скрипт Python после ошибки автоматического селена - PullRequest
0 голосов
/ 07 октября 2019

Привет, ребята. Мне трудно создавать сценарии.

У меня есть сценарий Python, использующий селен

Я выполняю автоматизацию на сайте, сценарий должен быть запущен на этом сайтев течение длительного времени.

Проблема в том, что время ожидания сайта истекло, робот возвращает ошибку и прекращает выполнение.

Мне нужно, чтобы, когда это произошло, закройте все окна и снова подключитесь к сайту.

Тайм-аут сайта = 30 минут

Если кто-то может мне помочь, это очень поможет !!!

from selenium import webdriver
import pyautogui

URL = 'https://XXXXXXX'
URL2 = 'https://XXXXXX'

user = 'user12345'
password = 'password12345'
class Web:
  browser = webdriver.Ie(URL)
  browser.find_element_by_name('login').send_keys(user)
  browser.find_element_by_name('password').send_keys(password)

  pyautogui.moveTo(121,134)# here I open a login window so I can use another link that I need to use
  pyautogui.click(121,134)

  browser.execute_script("window.open()")
  browser.switch-to.frame(browser.window_handles[1])
  browser.get(URL2)

  with open(tabela, "r") as leitor:
    reader = csv.DictReader(leitor, delimiter=';')
    for linha in reader:
        folder = linha['folder']
        try:
          browser.find_element_by_id('field').send_keys(folder)
          browser.find_element_by_id('save').click()
        except:
           with open('falied.txt', 'a') as wirter:
                writer.write(folder)
                writer.close()
    browser.quit()
  if __name__ == '__main__':
       Web()

С этого момента он должен запустить код внутристраница

этот код является примером, похожим на мой оригинальный код

1 Ответ

1 голос
/ 07 октября 2019

Замените свою часть кода следующим кодом:

if __name__ == '__main__':
    while True:
        try:
            Web()
        Except:
            browser.quit()

Как видите, мы называем его в while True, что означает, что он будет работать бесконечно browser.quit() закроет селен.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...