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.

  1. Cum se instalează și se configurează python, selenium și chromedriver pentru automatizare
  2. Bazele seleniului
  3. 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.

  1. Python— Asigurați-vă că sistemul dvs. are instalat python. Puteți merge pur și simplu la command prompt or terminal și tastați python --version pe Windows și pentru Linux/Macos python -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

  1. Creați un folder care va conține codul nostru. În acel dosar adăugați chromedriver.exeProbabil 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