Gå til innhold
🎄🎅❄️God Jul og Godt Nyttår fra alle oss i Diskusjon.no ×

Anbefalte innlegg

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 av zeezt
Lenke til kommentar
Videoannonse
Annonse
  • 1 år senere...

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

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 konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
×
×
  • Opprett ny...