zeezt Skrevet 29. november 2016 Del Skrevet 29. november 2016 (endret) Hei, jeg holder på å lage et enkelt python-selenium script som skal gjøre noe enkel "websurfing" for meg. Jeg pleier vanligvis å "learn by doing", så jeg har hoppet rett i et univers hvor noget er litt uklart til å begynne med. Dette er det første scriptet jeg har skrevet(bortsett fra at jeg holdt på litt med et scripte språk som het SCAR for lenge lenge siden) Jeg har noen spørsmål hvordan jeg kan få satt programmet mitt til å repetere oppgavene etter en gitt tid. import time from selenium import webdriver from selenium.webdriver.common.keys import Keys #Starter firefox og går til nettside driver = webdriver.Firefox() driver.get("www.nettside.no") #Finner brukernavn element og skriver inn un = driver.find_element_by_name("username") un.send_keys("BRUKER") #Finner passord element og skriver inn pw = driver.find_element_by_name("password") pw.send_keys("PASSORD") #Trykker login login = driver.find_element_by_name("login") login.click() time.sleep(5) #Første side - Denne skal gjentas etter 10min driver.get("www.nettside.no/førsteside") first = driver.find_element_by_id("id1") first.click() time.sleep(5) #Andre nettside - Denne skal gjøres etter førstesiden, og deretter gjentas etter 15min driver.get("www.nettside.no/andreside") andre = driver.find_element_by_id("id2") andre.click() time.sleep(1) Som dere ser, så åpnes det opp et vindu med firefox og går til gitte nettside og logger inn. Grunnen til at jeg har time.sleep(5) etter login er trykket, er fordi selenium går direkte til først siden umiddelbart etter det har blitt trykt. Det som kommer etter vil jeg at skal kunne loopes, men har ikke helt skjønt hvordan dette fungerer i python. Jeg husker i SCAR så var det så enkelt at jeg lagde en funksjon som inneholdt x stk oppgaver, også skrev jeg for eksempel repeat function until Er det noen som kunne ha hjulpet/pekt i riktig retning for hvordan jeg skal gå frem her? zeezt Endret 29. november 2016 av zeezt Lenke til kommentar
zeezt Skrevet 3. desember 2016 Forfatter Del Skrevet 3. desember 2016 Etter masse søking, prøving og feiling, har jeg skjønt hvor enkelt dette kan gjøres.... Har nå fått satt opp egne funksjoner som repeteres etter en gitt tid. https://docs.python.org/3/library/threading.html#timer-objects Lenke til kommentar
n0mad Skrevet 12. januar 2018 Del Skrevet 12. januar 2018 Du kan bruke en while true loop, men det enkleste og mest stabile er aa gjoere det i en cron-job eller en form for task queue. Hvis en jobb feiler saa krasjer ikke scriptet ditt, og du trenger ikke aa kjoere det hele tiden. I tillegg ville jeg ikke brukt time sleep, du kan heller gjoere en wait i Selenium hvor du venter paa et gitt element (i tillegg til en lengre timeout). Da vil det gaa paa skinner. Jeg kjoerer mange jobber i Selenium og Python paa schedule selv. Lenke til kommentar
Dan-Levi Skrevet 14. januar 2018 Del Skrevet 14. januar 2018 (endret) Hva med NodeJS og Nightmare i stedet? https://medium.com/@franperez/node-js-typescript-nightmare-c163fe3bed13 Endret 15. januar 2018 av Dan-Levi Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå