قسمت اول – مقدمه ای بر کتابخانه 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 به یکی از اصلیترین ابزارها برای تیمهای توسعه و تست تبدیل شده است.
دیدگاه خود را ثبت کنید
تمایل دارید در گفتگوها شرکت کنید؟در گفتگو ها شرکت کنید.