Селен - Обновить все вкладки после X раз - PullRequest
0 голосов
/ 24 октября 2018

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

Открыты 8 вкладок, и он перебирает каждую вкладку каждые 10 секунд.Ищете способ обновлять все открытые вкладки каждые 2-3 часа.Текущий код

from selenium import webdriver
from selenium.webdriver.chrome.options import Options
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
import time
usernameStr = 'USERNAME'
passwordStr = 'PASSWORD'

options = Options()
options.add_argument('--maximized')
options.add_argument('disable-infobars')
driver = webdriver.Chrome(chrome_options=options, executable_path=r'C:\Users\pc\Desktop\chromedriver.exe')
driver.get('https://Sign in link')
# fill in username and hit the next button
username = driver.find_element_by_id('username')
username.send_keys(usernameStr)
password = WebDriverWait(driver, 10).until(
    EC.presence_of_element_located((By.ID, 'password')))
password.send_keys(passwordStr)
nextButton = driver.find_element_by_class_name('emp-submit')
nextButton.click()

#second tab
driver.execute_script("window.open('about:blank', 'tab2');")
driver.switch_to.window("tab2")
driver.get('https://link#2')

#third tab
driver.execute_script("window.open('about:blank', 'tab3');")
driver.switch_to.window("tab3")
driver.get('https://link#3')

#fourth tab
driver.execute_script("window.open('about:blank', 'tab4');")
driver.switch_to.window("tab4")
driver.get('https://link#4')

#fifth tab
driver.execute_script("window.open('about:blank', 'tab5');")
driver.switch_to.window("tab5")
driver.get('https://link#5')

#sixth tab
driver.execute_script("window.open('about:blank', 'tab6');")
driver.switch_to.window("tab6")
driver.get('https://link#6')

#seventh tab
driver.execute_script("window.open('about:blank', 'tab7');")
driver.switch_to.window("tab7")
driver.get('https://link#7')

#eigth tab
driver.execute_script("window.open('about:blank', 'tab8');")
driver.switch_to.window("tab8")
driver.get('https://link#8')

while True:
    Windows = driver.window_handles
    for window in Windows:
        driver.switch_to.window(window)
        time.sleep(10)

1 Ответ

0 голосов
/ 24 октября 2018

Если вам нужно обновить все вкладки по прошествии 2 часов, вы можете попробовать

while True:
    time.sleep(7200)  # sleep for 2 hours
    Windows = driver.window_handles
    for window in Windows:
        driver.switch_to.window(window)
        driver.refresh()

Если вам нужно случайное время от 2 до 3 часов, вы можете использовать

from random import randint

time.sleep(7200 + randint(0, 3600))

вместо time.sleep(7200)

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