#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)