قسمت اول – مقدمه ای بر کتابخانه Selenium

کتابخانه Selenium یکی از محبوب‌ترین ابزارهای اتوماسیون مرورگر برای تست وب و جمع‌آوری داده است که به زبان‌های مختلفی از جمله پایتون ارائه شده است. این کتابخانه به توسعه‌دهندگان و تست‌کنندگان این امکان را می‌دهد تا با مرورگرهای وب (مانند Chrome، Firefox، Safari و Edge) به‌صورت خودکار تعامل داشته باشند، اقدام به کلیک، پیمایش، وارد کردن متن، خواندن داده‌ها و بسیاری کارهای دیگر کنند. Selenium به‌ویژه برای تست اپلیکیشن‌های وب و اتوماسیون وب‌سایت‌ها کاربرد دارد.

نصب Selenium در پایتون

برای نصب Selenium در پایتون، می‌توانید از دستور زیر استفاده کنید:

pip install selenium

برای اجرای Selenium نیاز به WebDriver برای مرورگر مربوطه (مانند ChromeDriver برای Chrome) دارید. WebDriver به Selenium کمک می‌کند که دستورات پایتون را به مرورگر ارسال کند و نتایج را دریافت نماید.

pip install webdriver_manager
pip install ChromeDriverManager   
pip install time

مزیت‌های استفاده از Selenium

اتوماسیون کامل و پیشرفته مرورگر: Selenium به شما این امکان را می‌دهد تا مرورگر را به‌طور کامل و دقیق اتوماسیون کنید. می‌توانید کارهایی از قبیل کلیک کردن روی لینک‌ها، پر کردن فرم‌ها، ارسال فایل‌ها، پیمایش به صفحات مختلف و حتی تعامل با المان‌های پویا مانند پنجره‌های پاپ‌آپ و جاوااسکریپت را انجام دهید.

پشتیبانی از چند مرورگر و پلتفرم‌های مختلف: Selenium می‌تواند با مرورگرهای مختلفی مانند Chrome، Firefox، Edge، Safari و سایر مرورگرهای معروف تعامل داشته باشد و از پلتفرم‌های مختلف مانند ویندوز، مک و لینوکس پشتیبانی می‌کند. این باعث می‌شود که کد تست به راحتی در محیط‌های مختلف اجرا شود.

پشتیبانی از تست‌های موازی: Selenium Grid که بخشی از Selenium Suite است، به شما این امکان را می‌دهد که تست‌های خود را به صورت موازی و همزمان در مرورگرها و پلتفرم‌های مختلف اجرا کنید. این ویژگی سرعت تست‌ها را بهبود می‌بخشد و آن را به ابزاری مناسب برای تیم‌های بزرگ‌تر تبدیل می‌کند.

تعامل با المان‌های جاوااسکریپتی: بسیاری از وب‌سایت‌های مدرن از جاوااسکریپت برای بارگذاری پویا و واکنش به اقدامات کاربر استفاده می‌کنند. Selenium این قابلیت را دارد که به راحتی با المان‌های پویا تعامل کند، از جمله انتظار تا بارگذاری المان‌ها و بررسی شرایط خاص در DOM.

پشتیبانی از زبان‌های برنامه‌نویسی مختلف: Selenium با زبان‌های مختلفی از جمله پایتون، جاوا، روبی، جاوااسکریپت و سی‌شارپ سازگار است. این موضوع امکان استفاده گسترده آن در پروژه‌های مختلف و ترکیب آن با زبان مورد علاقه تیم توسعه را فراهم می‌کند.

امکان تست اپلیکیشن‌های موبایل و وب: با استفاده از ابزارهای مکمل مانند Appium، می‌توانید Selenium را برای اتوماسیون اپلیکیشن‌های موبایل نیز به کار بگیرید. این ویژگی برای شرکت‌هایی که به دنبال تست جامع وب و موبایل هستند بسیار مفید است.

پشتیبانی از مدیریت WebDriver به صورت خودکار: با اضافه شدن Selenium Manager در نسخه‌های جدید، Selenium به‌طور خودکار نسخه مناسب WebDriver را برای مرورگرهای مختلف دانلود و نصب می‌کند، که این باعث سهولت در راه‌اندازی و مدیریت WebDriver می‌شود.

قابلیت ادغام با ابزارهای تست و CI/CD: Selenium می‌تواند به‌راحتی با ابزارهای تست (مانند TestNG و JUnit) و همچنین ابزارهای CI/CD (مانند Jenkins، GitLab CI و CircleCI) ادغام شود، که به تیم‌های توسعه این امکان را می‌دهد تا تست‌های خود را به‌صورت خودکار در فرآیندهای ساخت و استقرار اجرا کنند.

مثال ساده از استفاده از Selenium در پایتون

from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.common.keys import Keys
import time

# تنظیم WebDriver
driver = webdriver.Chrome()  # اطمینان حاصل کنید که chromedriver در مسیر صحیح قرار دارد

# باز کردن Google
driver.get("https://www.google.com")


 


# پیدا کردن فیلد جستجو و وارد کردن عبارت
search_box = driver.find_element(By.NAME, "q")
search_box.send_keys("RyPiTech")
search_box.send_keys(Keys.RETURN)

# صبر برای بارگذاری نتایج
time.sleep(3)

# واکشی عنوان اولین نتیجه
results = driver.find_elements(By.CSS_SELECTOR, "h3")
for result in results[:5]:  # نمایش ۵ نتیجه اول
    print(result.text)

# بستن مرورگر
driver.quit()


RyPiTech – مرجع هوش تجاری (Business Intelligence)
دوره‌های آموزشی
خدمات هوش تجاری
داشبورد
ورود به سایت


 

در این مثال، صفحه Google باز می‌شود، عبارت RyPiTech  جستجو می‌شود و نتایج جستجو واکشی می‌شود.

کاربردهای اصلی Selenium

تست خودکار وب‌سایت‌ها: برای تست برنامه‌های وب، مخصوصاً تست‌های رگرسیون که باید به‌صورت منظم تکرار شوند.

وب اسکرپینگ: واکشی داده از وب‌سایت‌هایی که دارای محتوای پویا هستند و با ابزارهایی مانند BeautifulSoup قابل اسکرپینگ نیستند.

اتوماسیون وظایف وب: برای انجام وظایف مکرر در وب، مانند پر کردن فرم‌ها، ورود به سیستم، دانلود فایل و غیره.

معایب Selenium

با وجود مزایای متعدد، Selenium دارای برخی معایب نیز هست:

کندی در اجرای اسکرپینگ در مقایسه با درخواست‌های HTTP: استفاده از مرورگر برای جمع‌آوری داده‌ها کندتر از استفاده از کتابخانه‌های درخواست‌های HTTP مانند requests است.

نیاز به تنظیم WebDriver: نصب و تنظیم WebDriver مناسب ممکن است زمان‌بر باشد، هرچند با Selenium Manager این مشکل کمتر شده است.

عدم پایداری در برخی از وب‌سایت‌ها: در صورتی که وب‌سایت تغییرات زیادی داشته باشد، ممکن است کدهای Selenium به‌روزرسانی مداوم نیاز داشته باشند.

جمع‌بندی

Selenium یکی از ابزارهای قوی و منعطف برای تست خودکار وب و اتوماسیون مرورگر است. با قابلیت‌های متعدد و پشتیبانی از چندین زبان، Selenium به یکی از اصلی‌ترین ابزارها برای تیم‌های توسعه و تست تبدیل شده است.

 

0 پاسخ

دیدگاه خود را ثبت کنید

تمایل دارید در گفتگوها شرکت کنید؟
در گفتگو ها شرکت کنید.

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *