#python #selenium
#python #селен
Вопрос:
Я запускаю код, который автоматически присоединяется к Google meets, и самые последние несколько строк помогают перейти от одного собрания к другому. Итак, он проверяет время, если это какое-то определенное время, он присоединяется к собранию, ждет некоторое определенное время, а затем выходит из системы. затем предполагается, что он присоединяется к другому вызову, и это происходит, но на этот раз он делает это бесконечно. итак, я полагаю, что пауза в elif не работает, потому что код просто игнорирует ее и открывает собрания бесконечно. как я могу это исправить? код показан ниже:
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.chrome.options import Options
import datetime
import time
import signal
import pause
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:13 / Friday":
sub = "https://meet.google.com/obu-evtm-kai"
driver = webdriver.Chrome(options=opt, executable_path=r'/usr/bin/chromedriver')
Glogin(mail_address, password)
dt = datetime.datetime(2021, 1, 29, 5, 14, 0, 0)
pause.until(dt)
driver.close()
elif current_time == "05:14 / Friday":
sub = "https://meet.google.com/obu-ev"
driver = webdriver.Chrome(options=opt, executable_path=r'/usr/bin/chromedriver')
Glogin(mail_address, password)
dt = datetime.datetime(2021, 1, 29, 5, 15, 0, 0)
pause.until(dt)
driver.close()
Ответ №1:
Прежде всего, вам нужно снова получить время внутри цикла while, чтобы оно не зацикливалось вечно. Тогда я предлагаю вам использовать time.sleep() вместо pause.until, потому что вам не нужно будет указывать также день.
while True:
now = datetime.datetime.now()
minutes = now.strftime("%M")
seconds = now.strftime("%S")
today = now.strftime("%A").strip()
minutes = int(minutes)
hour = int(hour)
if hour==5 and today=='Friday':
if minutes==12:
sub = "https://meet.google.com/obu-evtm-kai"
driver = webdriver.Chrome(options=opt, executable_path=r'/usr/bin/chromedriver')
Glogin(mail_address, password)
time.sleep(60)
driver.close()
elif minutes == 14:
sub = "https://meet.google.com/obu-ev"
driver = webdriver.Chrome(options=opt, executable_path=r'/usr/bin/chromedriver')
Glogin(mail_address, password)
time.sleep(60)
driver.close()
elif hour==5:
time.sleep((72 - minutes)* 60) #It will sleep until minutes are 12