Wir sind nicht verantwortlich für Schäden, die durch den Inhalt dieses Artikels verursacht werden. Dieser Artikel wurde als persönliches Hobby geschrieben und hat nichts mit der Firma zu tun, der ich angehöre. Darüber hinaus empfehlen wir nicht, gegen Unternehmensregeln zu verstoßen.
Ich habe die Nutzungsbedingungen überprüft, konnte jedoch keine Beschreibung finden, die den automatischen Betrieb vom Computer aus verbietet. (Wenn jemand bemerkt, dass Sie übersehen, lassen Sie es mich bitte wissen. Ich werde sofort aufhören.)
(6) Handlungen, die diesen Dienst, die über diesen Dienst aufgerufenen Inhaltsseiten und die Netzwerke oder Systeme von Informationsanbietern übermäßig belasten.
(13) Handlungen, die den Betrieb dieses Dienstes durch unser Unternehmen beeinträchtigen können
Wir haben festgestellt, dass es kein Problem gibt, da der Prozess des übermäßigen Zugriffs nicht berücksichtigt wird.
(16) Andere Handlungen, die das Unternehmen für unangemessen hält
Bitte, MoneyForward, beurteilen Sie es nicht als unangemessen
Die Teilnahme wird jeden Morgen zur gleichen Zeit abgestempelt, und die Abreise wird zur gleichen Zeit abgestempelt. Dies ist eine völlig lange Aussage. Das machen die Leute nicht. So wird es automatisiert. (Wir warten auf die Tsukkomi, dass die Bedeutung des Stempelns nicht gut ist)
Der Code ist auf Github verfügbar. Nicht der gesamte Code ist im Artikel enthalten. Wenn Sie also mehr wissen möchten, lesen Sie den Code direkt. Ich denke, es gibt einen eleganteren Weg, also zögern Sie nicht, eine Ausgabe oder PR zu werfen. Bitte. https://github.com/Haruka0522/AutoMFKintai
Greifen Sie mit Selenium auf gestempelte Webseiten von Python aus zu ↓ Feiertags- / Wochentagsbeurteilung unter Verwendung von Datum / Uhrzeit und Feiertag ↓ Klicken Sie auf die Schaltfläche, wenn die voreingestellte Arbeits- / Urlaubszeit erreicht ist
Es ist einfach!
id_box = self.driver.find_element_by_name("employee_session_form[office_account_name]")
id_box.send_keys(self.company_id)
mail_box = self.driver.find_element_by_name("employee_session_form[account_name_or_email]")
mail_box.send_keys(self.mail)
password_box = self.driver.find_element_by_name("employee_session_form[password]")
password_box.send_keys(self.password)
login_button = self.driver.find_element_by_name("commit")
login_button.click()
Geben Sie nach dem Zugriff auf den Anmeldebildschirm das Eingabefeld mit dem Namen des Elements an und geben Sie dort die Anmeldeinformationen ein. Der Name dieses Elements kann im Entwicklermodus ermittelt werden, indem Sie mit Chrome darauf zugreifen und die Taste F12 drücken. Es war ein Durchbruch des Anmeldebildschirms, der voraussichtlich schwierig sein würde, aber es war möglich, leicht durchzubrechen.
Wenn Sie das Passwort usw. im Quellcode fest codieren und es versehentlich auf Github hochladen, wird es schwierig. Nehmen Sie also eine Methode wie das Schreiben des Passworts usw. in eine Textdatei namens pass.txt und lesen Sie es. Wenn Sie pass.txt mit .gitignore aus der Git-Verwaltung entfernen, müssen Sie sich keine Sorgen über versehentliches Drücken machen.
actions = ActionChains(self.driver)
actions.move_by_offset(480, 250)
actions.click()
actions.perform()
Hier kämpfte ich nüchtern. Der Versuch, durch Angabe des Elements der Stempelschaltfläche zu klicken, funktionierte nicht. Da onclick () geschrieben wurde, habe ich versucht, Javascript direkt auszuführen, aber aus irgendeinem Grund hat es nicht funktioniert. Obwohl dies keine sehr gute Methode ist, habe ich die Koordinaten des Bildschirms angegeben und darauf geklickt. Da die Fenstergröße von Chrome in der Anfangseinstellung festgelegt ist, denke ich, dass es auch dann funktioniert, wenn sich die Umgebung ändert, aber ehrlich gesagt ist es nicht elegant, daher möchte ich es in Zukunft verbessern.
Ich möchte nicht versehentlich samstags und sonntags stampfen. In meinem Fall arbeite ich grundsätzlich an Wochentagen, daher stelle ich den Stempel nur an Wochentagen ein.
def is_holiday(date):
return date.weekday() >= 5 or jpholiday.is_holiday(date)
Ich habe die datetime-Bibliothek und die jpholiday-Bibliothek verwendet, um Wochentage zu bestimmen. Ich habe datetime verwendet, um einfache Samstage und Sonntage zu beurteilen, und jppoliday, um Feiertage zu beurteilen.
https://qiita.com/hid_tanabe/items/3c5e6e85c6c65f7b38be
while True:
dt_now = datetime.datetime.now()
if is_holiday(datetime.date.today()): #Wochentagsurteil
continue
if dt_now.hour == start_time.hour and dt_now.minute == start_time.minute:
operator.syukkin()
elif dt_now.hour == end_time.hour and dt_now.minute == end_time.minute:
operator.taikin()
else:
time.sleep(wait_time)
Wenn Sie dies auf einem Computer ausführen, der 24 Stunden am Tag ausgeführt wird (Razpai sieht mit Energieeinsparung gut aus), wird es automatisch gestempelt. Ich möchte in der Lage sein, einzigartige Feiertage in Zusammenarbeit mit Google Kalender usw. zu verwalten, und ich möchte ein System haben, bei dem ein solches Skript überhaupt nicht geschrieben werden muss. Ich habe das Gefühl, dass ich von allen Seiten wütend werden könnte, aber ist es okay ...?
Recommended Posts