Как выйти из Google meet call после указанного времени

#python #selenium

#python #селен

Вопрос:

Я работал над этим скриптом, который автоматически присоединяется к Google meets. Он входит в систему gmail, а затем автоматически отправляется на собрание, если это подходящее время для собрания. Но теперь у меня возникли проблемы с тем, чтобы покинуть собрание через определенное время. Я хочу просто закрыть вкладку браузера, таким образом, собрание. Затем продолжайте проверку для следующей встречи. Я думаю, что последний цикл while, предназначенный для закрытия вкладки chome после завершения собрания, вообще не выполняется. Я попытался заменить его инструкциями print, чтобы проверить, выполняется ли он, но это не так. Я не знаю, почему бы и нет.

 from selenium import webdriver
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.chrome.options import Options
import datetime
import time
import signal

now = datetime.datetime.now()
current_time = now.strftime("%H:%M / %A")

justtime = now.strftime("%H:%M")
print (current_time)


def Glogin(mail_address, password):
    #os.system("obs --startvirtualcam amp;")
    # Login Page 
    driver.get( 
        'https://accounts.google.com/ServiceLogin?hl=enamp;passive=trueamp;continue=https://www.google.com/amp;ec=GAZAAQ') 

    # input Gmail 
    driver.find_element_by_id("identifierId").send_keys(mail_address) 
    driver.find_element_by_id("identifierNext").click() 
    driver.implicitly_wait(10) 

    # input Password 
    driver.find_element_by_xpath( 
        '//*[@id="password"]/div[1]/div/div[1]/input').send_keys(password) 
    driver.implicitly_wait(10) 
    driver.find_element_by_id("passwordNext").click() 
    driver.implicitly_wait(10) 

    # go to google home page 
    driver.get('https://google.com/') 
    driver.implicitly_wait(100)
    driver.get(sub)
    # turn off Microphone 
    time.sleep(1)
    #driver.find_elements_by_class_name("JRY2Pb")[0].click()
    driver.find_elements_by_class_name("JRY2Pb")[0].click()
    # switch camera
    time.sleep(2)
    for x in driver.find_elements_by_class_name("JRtysb"):
        x.click()
    time.sleep(2)
    for a in driver.find_elements_by_class_name("FwR7Pc"):
        a.click()
    time.sleep(2)
    for b in driver.find_elements_by_class_name("XhPA0b"):
        b.click()
    time.sleep(2)
    driver.find_element_by_tag_name('body').send_keys(Keys.TAB   Keys.TAB   Keys.ARROW_DOWN   Keys.ENTER)
    time.sleep(1)
    webdriver.ActionChains(driver).send_keys(Keys.ESCAPE).perform()
    time.sleep(2)
    # Join meet 
    time.sleep(1) 
    driver.implicitly_wait(2000) 
    driver.find_element_by_css_selector( 
        'div.uArJ5e.UQuaGc.Y5sE8d.uyXBBb.xKiqt').click()
    
# assign email id and password
mail_address = 'email'
password = 'password'

# create chrome instamce 
opt = Options() 
opt.add_argument('--disable-blink-features=AutomationControlled') 
opt.add_argument('--start-maximized')
opt.add_experimental_option("prefs", { 
    "profile.default_content_setting_values.media_stream_mic": 1, 
    "profile.default_content_setting_values.media_stream_camera": 1, 
    "profile.default_content_setting_values.geolocation": 0, 
    "profile.default_content_setting_values.notifications": 1
})

while True:

    if current_time == "05:00 / Wednesday":
        
        sub = "link"
        driver = webdriver.Chrome(options=opt, executable_path=r'/usr/bin/chromedriver') 
        Glogin(mail_address, password)
        break
    
while True:
    if current_time == "05:01 / Wednesday":
        driver.find_element_by_tag_name('body').send_keys(Keys.CONTROL   'w')
        break
            
 

Ответ №1:

Вы можете сделать это с помощью модуля time:

функция «time.sleep()» приостановит работу скрипта.

а затем вы можете перейти на другое собрание, если вы измените URL вкладки, вы покинете собрание.

 import time

time.sleep(60)

driver.get(url)