Hur man bygger en enkel automatisk inloggningsblock med Python och Selen
Automatisering är utan tvekan en av de mest eftertraktade färdigheter som en programmerare kan ha. Automatisering används vanligtvis för uppgifter som är repeterande, tråkig, tidskrävande, eller annars ineffektiv utan att använda ett manus.
Med webbautomatisering, du kan enkelt skapa en bot för att utföra olika uppgifter på nätet, till exempel att övervaka konkurrerande hotellpriser över Internet och bestämma det bästa priset.
Personligen har jag alltid hittat loggar in i min email ganska repetitiva och tråkiga, så för att det ska bli ett enkelt exempel för att få er började med webbautomatisering, låt oss genomföra en automatiserat Python-skript till logga in med ett enda klick till ett Gmail-konto.
Installation och installation
I denna handledning kommer vi att använda följande verktyg:
- Python programmeringsspråk
- Google Chrome-webbläsare
- Selena webbläsare automatisering verktygslåda
- Chrome-drivrutins webbdrivrutin för Chrome
För vårt program använder vi specifikt Pythons programmeringsspråk version 2.7.11. Det är viktigt att vi installerar en ganska ny version av Python 2 eftersom det kommer med PIP, vilket gör att vi kan installera paket och ramar från tredje part som vi behöver automatisera våra skript.
En gång installerad, starta om din dator för att ändringarna ska träda i kraft. Använd kommandot pip installer selen
att lägga till Selena Web Automation Toolkit till python Selen ger oss möjlighet att programmatiskt bläddra, kopiera text, fylla formulär och klicka på knappar.
Slutligen ladda ner Selenium Chrome Driver körbar, som kommer att öppna Google Chrome som behövs för att utföra våra automatiska uppgifter. Chrome-drivrutinen är helt enkelt ett sätt att öppna Google Chrome (som redan ska installeras) till åtkomst till standard webbläsarfunktioner programmerat.
Hämta bara den senaste ZIP-filen härifrån, ta ut den chromedriver.exe
körbar och placera körbar i någon katalog. Var noga med att notera var din körbar är, för Vi behöver det när vi börjar.
Starta programmet
Som nämnts kommer vi att använda Selena webbautomatisering ram för att logga in programmatiskt. Den första ordern är att importera varje modul Vi kommer behöva från Selen Python biblioteket som vi installerade ealier med PIP.
Låt oss öppna IDLE eller en annan kodredigerare, skapa en ny pythonfil med .py
förlängning och importera följande moduler:
från selenimport webdriver från selenium.webdriver.common.by import By från selenium.webdriver.support.ui importera WebDriverWait från selenium.webdriver.support importera expected_conditions som EC
Nästa ska vi skapa två strängar som representerar vår användarnamn och lösenord för e-postkontot. Var uppmärksam på kapitalisering, speciellt i lösenordssträngen.
användarnamnStr = 'putYourUsernameHere' passwordStr = 'putYourPasswordHere'
Nu när vi har allt inrättat för att starta inloggningsprocessen måste vi faktiskt instruera ett webbläsarfönster till öppna Google Chrome, och navigera till Gmails inloggningssida.
Om du inte redan har gjort det så måste du se till att ditt Python-skript är sparas på samma plats som chromedriver.exe
exekverbar vi extraherade tidigare.
webbläsare = webdriver.Chrome () browser.get (('https://accounts.google.com/ServiceLogin? "service = mail & continue = https: //mail.google" .com / mail / # identifierare "))
Hitta vårt element
Vi har lyckats få webbläsaren att öppna Gmail, men nu behöver vi hitta inmatningsfälten på webbsidan, som vi kan ange vårt användarnamn och lösenord.
Vi kan enkelt göra det med hjälp av de inbyggda verktygen för Chrome-utvecklare. Vi behöver bara högerklicka på inmatningsfälten och välj “Inspektera” meny.
Nu handlar det bara om använder HTML id
attribut att hitta elementen programmatiskt.
I koden nedan är vi helt enkelt letar efter användarnamn inmatningsfält av id
, och fylla den med önskad text. Då är vi söker efter knappen Nästa som övergår med en snabb animering innan vi uppmanar oss till lösenordet.
De send_keys ()
och klick()
kommandon gör exakt som deras namn tyder på - send_keys ()
simulerar knapptryckningar i det önskade elementet, och klick()
simulerar ett musklick.
# fyll i användarnamn och klicka på nästa knapp användarnamn = browser.find_element_by_id ('Email') användarnamn.send_keys (användarnamnStr) nextButton = browser.find_element_by_id ('next') nextButton.click ()
Vi kan gör samma sak för lösenordsinmatningsfältet samt för inloggningsknappen. Dessa två objekt visas emellertid på sidan endast efter en animerad övergång.
Det sagt, vi behöver programmet till vänta några sekunder innan du återupptar sökningen efter element. För det mesta är det här koden inte annorlunda än den föregående. Vi måste helt enkelt instruera webbläsaren till vänta högst 10 sekunder innan du hittar lösenordet.
# vänta på övergången fortsätt sedan fylla i objektet lösenord = WebDriverWait (webbläsare, 10) .until (EC.presence_of_element_located ((By.ID, 'Passwd'))) password.send_keys (passwordStr) signInButton = browser.find_element_by_id ('signIn' ) signInButton.click ()
Slutord
Du har just avslutat skapa en bot som besöker en webbsida, anger ditt användarnamn och lösenord och loggar in dig med framgång, automatiserar hela processen till ett enda klick. Jag vet att det här var en enkel demonstration, men möjligheterna är oändliga.
På samma anteckning, var försiktig av hur du använder denna färdighet. Vissa använder bots och automatiska skript för att gå in i tävlingar tusentals gånger, helt och hållet bortse från villkoren. Andra använder dem för mer onda intentioner.
Var noga med att använda automation med försiktighet och noggrannhet, för att det verkligen är en välbehövlig skicklighet i programmeringsgemenskapen!
Redaktörens anteckning: Detta är ett inlägg skrivet för Hongkiat.com av Malik Brahimi. Malik är en utvecklare som ligger i Greater Boston-området och älskar mat, fotboll och programmering (favoritsprog Python).
- Hämta källa