Selenium este un instrument puternic care vă poate automatiza sarcinile de bază și poate fi folosit pentru eliminarea web. Automatizarea sarcinilor repetitive poate ajuta la economisirea mult timp. Dacă sunteți programator sau doar un om de afaceri, cunoștințele despre seleniu și python vă pot fi de mare ajutor pentru sarcinile dvs. zilnice.
Acesta este un articol prietenos pentru începători. Dacă nu știți nimic despre seleniu sau chiar despre piton, nu vă faceți griji, am simplificat acest articol în așa fel încât oricine să îl poată înțelege și folosi cu ușurință.
Ce vom face?
Înainte de a citi articolul complet, să înțelegem ce vei învăța/ști din acest articol.
- Cum se instalează și se configurează python, selenium și chromedriver pentru automatizare
- Bazele seleniului
- Cum să automatizăm site-urile web — Ne vom autentifica pe site-ul web aleatoriu cu anumite acreditări predefinite, vom prelua câteva date după autentificare, de exemplu nume de utilizator conectat și deconectare de pe site-ul web.
Cerințe:
Există câteva instrumente pe care trebuie să le aveți înainte de a începe să codificați.
- Python— Asigurați-vă că sistemul dvs. are instalat python. Puteți merge pur și simplu la
command prompt or terminal
și tastațipython --version
pe Windows și pentru Linux/Macospython -version
ar putea funcționa. Dacă nu aveți instalat python, aici este linkul de instalare.
„Descărcați Python Python.org”
În cazul meu, folosesc versiunea python 3.9.7
2. Seleniu:
Odată ce ați instalat Python, trebuie să instalăm biblioteca de seleniu care ne va ajuta să facem automatizare. O bibliotecă este deja scris cod sau instrument pe care îl putem folosi. Deci, biblioteca Selenium are câteva funcții predefinite care ne vor ajuta să interacționăm cu browserele web și să ne trimitem comenzile.
Comanda pentru instalarea seleniului: pip install selenium
Acest lucru va instala seleniul în sistemul dvs. local.
3. Driver Chrome:
WebDriver este un instrument open source pentru testarea automată a aplicațiilor web în multe browsere. Chromedriver ne oferă mediul sau browserul pe care îl putem controla prin intermediul scriptului nostru pentru vizitarea paginilor web.
Link de descărcare: ChromeDriver — WebDriver pentru Chrome (chromium.org)
Acesta este tot ce avem nevoie pentru acest tutorial.
Acum trebuie să ne setăm codul.
Notă: asigurați-vă că versiunea Chromedriver și a browserului Chrome instalate în sistemul dvs. este aceeași. dacă descărcați cea mai recentă versiune stabilă de pe site-ul de drivere Chrome, asigurați-vă că Chrome este actualizat la cea mai recentă versiune. în caz contrar, vei primi erori.
Configurare cod
- Creați un folder care va conține codul nostru. În acel dosar adăugați
chromedriver.exe
Probabil veți primi zip după ce îl descărcați. Extrageți-l și va avea fișierul .exe.
2. Să creăm fișierul nostru python. L-am numit test.py
Deci, folderul meu selenium
va arăta ca.
Codificare
mai întâi vom importa bibliotecile de care avem nevoie. Adăugați codul de mai jos în fișierul dvs. test.py.
from selenium import webdriver from selenium.webdriver.support.ui import WebDriverWait from selenium.webdriver.common.by import By from selenium.webdriver.support import expected_conditions as EC from selenium.webdriver.chrome.options import Options
Toate aceste biblioteci de seleniu au caracteristici diferite de care avem nevoie.
Primul import webdriver
este necesar pentru comunicarea cu browserul web și stabilirea conexiunii și gestionarea acesteia.
webDriverWait
— Această funcție/clasă ne ajută să adăugăm timp de așteptare în operațiunile noastre. Uneori, în automatizarea noastră, trebuie să așteptăm răspunsul serverului și în timp ce pagina web se încarcă, funcțiile wait
ajută la adăugarea de așteptări implicite și explicite. De exemplu, aveți un site web care generează combinații de șiruri sau nume atunci când trimiteți un cuvânt. Deci trebuie să așteptăm ca pagina web sau site-ul web să încarce datele generate.
By
& EC
— Aceste funcții oferă o selecție ușoară a elementelor web, cum ar fi câmpuri de introducere, butoane, text etc. cu proprietățile lor Xpath sau CSS.
Options
— Aceasta oferă opțiuni suplimentare pentru driverul nostru web. Chrome poate rula în modul fără cap sau în modul live. Headless este, practic, codul nostru va vizita site-uri web și va elimina datele și nu vom vedea acest proces. Vom obține direct datele/rezultatul.
Pe de altă parte, dacă doriți să deschideți browserul în sistemul dvs. în fața dvs., introduceți introducerea automată și faceți clic pe butonul așa cum ați codat. ar trebui să dezactivați modul fără cap. În mod prestabilit, este dezactivat.
Acum să trecem la următorul cod.
options = webdriver.ChromeOptions() # options.add_argument('--headless') options.add_experimental_option('excludeSwitches', ['enable-logging']) web = webdriver.Chrome(options=options,executable_path='chromedriver.exe')
După cum puteți vedea cum să adăugați headless option
pentru moment, l-am comentat pentru că vreau să vă arăt cum funcționează automatizarea.
concentrați-vă pe ultima linie: web
este obiectul nostru care deține proprietățile chromedriver. Acum vom rula toate funcțiile noastre pe această proprietate.
Pasul 1: lansarea unui browser și accesarea site-ului web
Deci, să alegem orice site web pentru automatizare. Acesta este unul dintre proiectele mele de operațiuni simple ale magazinului online.
„Autentificare/Înregistrare (000webhostapp.com)”
copiați linkul site-ului și apăsați pe cererea de obținere.
web.get("https://osmphp.000webhostapp.com/views/login.php");
Acum rulați codul. Această comandă get ar trebui să deschidă un browser și să vă arate pagina de conectare.
Felicitări!! Tocmai ați deschis cu succes un browser și ați vizitat site-ul web prin codul seleniu. Aceasta înseamnă că ați instalat și configurat totul corect.
În această etapă, dacă nu reușiți să deschideți browserul sau să primiți orice fel de eroare, introduceți-vă în comentarii. Te voi ajuta cu siguranta.
Pasul 2: Conectați-vă la site
Vă puteți înscrie folosind acreditările pe care acest site web nu solicită OTP. Vă las asta să vă automatizați pagina de înscriere când completați acest cod.
Acreditări false pentru testare:
e-mail: [email protected]
parolă: 123123
Trebuie să introducem detaliile de conectare în câmpurile de introducere. Deci, pentru aceasta, trebuie să selectăm acele câmpuri de intrare și să transmitem intrarea prin cod, aceasta este cerința noastră de bază.
Acum, pentru a realiza acest lucru, trebuie să identificăm elementele HTML în mod unic pe pagina web. Identificarea elementelor se poate face prin JS path, CSS ID, Xpath / full XPath. Toate sunt puțin la fel. Îmi place să folosesc Full Xpath, care oferă complet ID-uri unice. Deci, copiați Xpath-ul adresei de e-mail și câmpul similar pentru parolă, așa cum se arată în captura de ecran de mai sus.
try: # create a field object email = WebDriverWait(web, 20).until(EC.element_to_be_clickable((By.XPATH, "/html/body/div[1]/div/div/form/div[1]/input"))) # click on it to enable the input field email.click() # insert the input using send_keys function email.send_keys("[email protected]") except: pass
Deci codul este bine comentat Dar permiteți-mi totuși să explic procesul.
Pentru a da orice intrare trebuie să urmam 3 pași de bază
A. Găsiți câmpul de introducere pe pagina web — Utilizând XPath. Codul de mai jos face munca de selectare a câmpului de introducere
email = WebDriverWait(web, 20).until(EC.element_to_be_clickable((By.XPATH, "/html/body/div[1]/div/div/form/div[1]/input")))
b. Faceți clic / selectați elementul pentru adăugarea intrării — metoda click
selectează câmpul de introducere.
c. Adăugați intrare — send_keys("inputvalue")
această funcție trimite valoarea transmisă între ghilimele elementului selectat.
În mod similar, selectați câmpul de parolă și butonul folosind XPath și utilizați numai metoda click
pentru buton.
după aceasta, veți fi conectat la site. Linkul complet al codului Github este menționat mai jos. vă rugăm să verificați pentru imprimarea datelor și procesul de deconectare.
Codul proiectului Link GitHub: https://github.com/dhgavali/selenium-login-webpage-automation
Multumesc pentru lectura! Sper că totul a fost clar în acest articol. Urmăriți-vă pentru a obține feedul cu dezvoltarea de software, automatizare și actualizări recente de tehnologii.
Cine sunt eu?
Să ne conectăm 🤝😃
Portofoliu: Bun venit — Pagina de pornire (dhgavali.me)
LinkedIn: Dhananjay Gavali | LinkedIn