Je pense que de nombreux étudiants suivent actuellement des cours en ligne.
Je me suis demandé si je pouvais écrire un code de présence automatique si la confirmation de présence était un cours en ligne qui "assistait uniquement à une réunion Zoom".
Pour rappel, c'est une ** histoire **. Bien sûr, ** Prenons la classe correctement! ** Lol
Eh bien, le sujet principal.
Ce que je veux faire, c'est "** rejoindre la réunion Zoom avant l'heure du cours " et " quitter la réunion juste avant la fin de l'heure du cours **".
Quant à l'heure, cela semble tout à fait le cas si vous utilisez le sommeil. La question est ** comment entrer dans la réunion **.
Zoom peut rejoindre la réunion à partir du navigateur, je pense donc que la participation est très probable si vous pouvez utiliser le navigateur.
Python + sélénium est utilisé pour le fonctionnement du navigateur. C'est la première fois que j'utilise le sélénium, mais je l'ai appris facilement avec la vidéo de tutoriel de Web scraping en Python sur Youtube.
À propos, Mac et Anaconada sont déjà installés, Python 3.7.4. J'ai utilisé JupyterLab, mais je n'ai pas à le faire.
Maintenant que vous savez comment l'utiliser, vous pouvez héberger Zoom, démarrer une réunion de test et obtenir l'URL.
Pour l'instant, installez sélénium et ouvrez l'URL.
test.py
#S'il n'est pas installé, installez-le
!pip install selenium
from selenium import webdriver
import time
browser = webdriver.Chrome()
browser.implicitly_wait(3)
browser.get("URL de la réunion de test de zoom")
time.sleep(5)
Je l'ai ouvert en toute sécurité.
Le texte suivant sera affiché avec l'ID de la réunion, etc. 「If you have Zoom Client installed, launch meeting. Otherwise, download and run Zoom.If you cannot download or run the application, join from your browser.」
Si vous essayez de rejoindre Zoom avec un navigateur, il sera bloqué par reCAPTCHA (contre-mesure du bot), essayez donc de démarrer le Zoom installé.
Pour Chrome, cliquez avec le bouton droit de la souris sur "Vérifier" et obtenez l'Xpath complet de "Lancer la réunion". Après cela, spécifiez l'élément avec xpath et cliquez sur.
test.py
PATH='/html/body/div[2]/div/div/div/div/div[2]/h3[1]/a[1]'
launchButton = browser.find_element_by_xpath(PATH)
time.sleep(3)
launchButton.click()
Une fois exécuté, "Voulez-vous ouvrir zoom.us? Annuler. Ouvrir le zoom" Une fenêtre contextuelle a été affichée.
Cela ressemble à une fenêtre de confirmation (Confirmer), donc cela semble tout à fait le cas avec switch_to.alert.
test.py
alert = browser.switch_to.alerttext = alert.text
alert.dismiss()
Quand tu cours Message: no such alert Nunu? ??
Après avoir vérifié et étudié diverses choses, Selenium ne peut faire fonctionner que la fenêtre contextuelle JavaScripts, et ce qui s'affiche est le modèle de la boîte de dialogue système.
Ensuite, j'ai trouvé la description La boîte de dialogue système ne peut pas être utilisée avec Selenium.
Ensuite, vous pouvez le définir de sorte que la boîte de dialogue système ne s'affiche pas. Donc, reportez-vous à Comment masquer l'écran de confirmation lors du démarrage d'une application externe dans Chrome et omettez la boîte de dialogue lors du démarrage d'une application externe. Mis à.
defaults write com.google.Chrome ExternalProtocolDialogShowAlwaysOpenCheckbox -bool true
Utilisez le navigateur vous-même, réglez-le de sorte que la boîte de dialogue ne s'affiche pas la prochaine fois et exécutez-le à nouveau avec Selenium.
Échec. On me demande "Voulez-vous l'omettre de la prochaine fois?" .. Je me demande si c'est la première fois que je visite la page Zoom dans une fenêtre ouverte avec Selenium.
J'ai essayé d'utiliser Safari au lieu de Chrome, mais il a été bloqué par une boîte de dialogue système similaire. Je ne pouvais pas le faire comme je m'y attendais, mais c'était une bonne étude car j'ai utilisé du sélénium pour la première fois. Pour le moment, une chose que je peux dire est "** Allons bien au cours !! **" c'est tout. (Au fait, il est passé 4 heures du matin. Cours ...)
J'ai joué avec les paramètres de Chrome pour masquer l'écran de confirmation lors du démarrage d'une application externe. Cependant, je suis un peu inquiet pour la sécurité, donc je vais y remédier.
defaults write com.google.Chrome ExternalProtocolDialogShowAlwaysOpenCheckbox -bool false
Quand j'ai exécuté, il est resté caché. Après avoir exécuté, j'ai quitté Chrome, je l'ai rouvert, j'ai supprimé les cookies, puis je suis revenu. Repos assuré.
Recommended Posts