Ich denke, viele Schüler nehmen derzeit an Online-Kursen teil.
Ich fragte mich, ob ich einen automatischen Anwesenheitscode schreiben könnte, wenn die Anwesenheitsbestätigung eine Online-Klasse wäre, die nur "an einem Zoom-Meeting teilnahm".
Zur Erinnerung, es ist eine ** Geschichte **. Natürlich ** Lass uns den Unterricht richtig nehmen! ** Lol
Nun, das Hauptthema.
Ich möchte "** vor der Unterrichtszeit am Zoom-Meeting teilnehmen " und " das Meeting kurz vor Ende der Unterrichtszeit verlassen **".
Was die Zeit betrifft, scheint es ganz so, wenn Sie Schlaf verwenden. Die Frage ist ** wie man in das Meeting kommt **.
Zoom kann über den Browser an der Besprechung teilnehmen. Ich bin daher der Meinung, dass eine Teilnahme am Meeting sehr wahrscheinlich ist, wenn Sie den Browser bedienen können.
Python + Selen wird für den Browserbetrieb verwendet. Ich benutze Selen zum ersten Mal, aber ich habe es leicht mit Web Scraping Tutorial Video in Python auf Youtube gelernt.
Mac und Anaconada sind übrigens bereits installiert, Python 3.7.4. Ich habe JupyterLab verwendet, muss es aber nicht.
Nachdem Sie nun wissen, wie Sie es verwenden, können Sie Zoom hosten, ein Testmeeting starten und die URL abrufen.
Installieren Sie zunächst Selen und öffnen Sie die URL.
test.py
#Wenn nicht installiert, installieren Sie es
!pip install selenium
from selenium import webdriver
import time
browser = webdriver.Chrome()
browser.implicitly_wait(3)
browser.get("Zoom-Test-Meeting-URL")
time.sleep(5)
Ich habe es sicher geöffnet.
Der folgende Text wird zusammen mit der Besprechungs-ID usw. angezeigt. 「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.」
Wenn Sie versuchen, Zoom mit einem Browser zu verbinden, wird dieser durch reCAPTCHA (Bot-Gegenmaßnahme) blockiert. Versuchen Sie daher, den installierten Zoom zu starten.
Klicken Sie für Chrome mit der rechten Maustaste auf "Überprüfen" und erhalten Sie den vollständigen Xpath von "Meeting starten". Geben Sie danach das Element mit xpath an und klicken Sie auf.
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()
Wenn ausgeführt, "Möchten Sie zoom.us öffnen? Abbrechen. Zoom öffnen" Popup wurde angezeigt.
Es sieht aus wie ein Bestätigungs-Popup (Bestätigen), also scheint es mit switch_to.alert ganz so zu sein.
test.py
alert = browser.switch_to.alerttext = alert.text
alert.dismiss()
Wenn du rennst Message: no such alert Nunu? ??
Nach dem Überprüfen und Untersuchen verschiedener Dinge kann Selenium nur das JavaScripts-Popup bedienen. Es wird das Muster des Systemdialogs angezeigt.
Dann fand ich die Beschreibung Systemdialog kann nicht mit Selen betrieben werden.
Anschließend können Sie festlegen, dass der Systemdialog nicht angezeigt wird. Lesen Sie daher So blenden Sie den Bestätigungsbildschirm beim Starten einer externen Anwendung in Chrome aus und lassen Sie den Dialog beim Starten einer externen Anwendung aus. Einstellen.
defaults write com.google.Chrome ExternalProtocolDialogShowAlwaysOpenCheckbox -bool true
Bedienen Sie den Browser selbst, stellen Sie ihn so ein, dass der Dialog beim nächsten Mal nicht mehr angezeigt wird, und führen Sie ihn mit Selenium erneut aus.
Fehler. Ich werde gefragt: "Möchtest du es beim nächsten Mal weglassen?" .. Ich frage mich, ob ich zum ersten Mal die Zoomseite in einem mit Selen geöffneten Fenster besuche.
Ich habe versucht, Safari anstelle von Chrome zu verwenden, aber es wurde durch einen ähnlichen Systemdialog blockiert. Ich konnte es nicht so machen, wie ich es erwartet hatte, aber es war eine gute Studie, weil ich zum ersten Mal Selen verwendet habe. Zur Zeit kann ich nur sagen: "** Lass uns richtig am Unterricht teilnehmen !! **" das ist alles. (Übrigens ist es nach 4 Uhr morgens. Unterricht ...)
Ich habe mit den Chrome-Einstellungen gespielt, um den Bestätigungsbildschirm beim Starten einer externen Anwendung auszublenden. Ich mache mir jedoch ein wenig Sorgen um die Sicherheit, daher werde ich das Problem beheben.
defaults write com.google.Chrome ExternalProtocolDialogShowAlwaysOpenCheckbox -bool false
Als ich hingerichtet habe, blieb es verborgen. Nach dem Ausführen habe ich Chrome beendet, es erneut geöffnet, Cookies gelöscht und bin dann zurückgekehrt. Seien Sie versichert.
Recommended Posts