ch
Feedback

不要被骗子欺骗!Telemetrio 会找到并标记这些频道 👉 如果想查看标记,请订阅

python_developer

python_developer

前往频道在 Telegram

کانال اموزش پایتون @Real_developer تبلیغات پذیرفته میشود.

显示更多
1 519
订阅者
无数据24 小时
-37 天
-430 天
帖子存档
photo content

اکنون کد بهبود یافته است و تست بالا را می‌توان به صورت زیر بازنویسی کرد.

photo content

باید به مقدار بازگردانده شده توسط go_to_log_in_page()‎ توجه داشت. اگر کلاس دیگری به نام FeedPage وجود داشت، تابع login()‎ از کلاس LoginPage نمونه‌ای از آن را (return FeedPage()‎) باز می‌گرداند. در ادامه، چگونگی استفاده از Page Object Pattern نمایش داده شده است.

این کد، عملکردی مشابه کد بالا دارد، با این تفاوت که Home Page و Login Page به صورت کلاس‌ها نمایش داده شده‌اند. کلاس‌ها، مکانیزم‌های لازم برای پیدا کردن داده‌ها در رابط کاربری و دستکاری آن‌ها را کپسوله کرده‌اند. مورد دیگری که باید به آن توجه داشت، آن است که هنگام جا به جایی به صفحه‌ای دیگر با استفاده از یک شی صفحه (Page Object)، این کد، Page Object برای صفحه جدید را باز می‌گرداند. «متدها» (Methods) و «اکسسورهایی» (Accessors) نیز وجود دارند که می‌توانند هر آنچه یک انسان انجام می‌دهد را انجام دهند

photo content

photo content

. با این الگو (Pattern)، کلاس‌های شی صفحه (Page Object Classes) برای مهم‌ترین صفحات یا قسمت‌ها (Fragments) ساخته می‌شوند و در واقع رابط‌هایی را شکل می‌دهند که برای برنامه قابل درک است. با در نظر داشتن این موضوع، می‌توان کد بالا را بازنویسی کرد و کلاس‌های HomePage و LoginPage را ساخت.

قرار دادن کدهای تکراری در پروژه‌ها در حالت کلی اتفاقی بد و منفی است و در پروژه مطلب آموزش ساخت ربات اینستاگرام با پایتون به طور ویژه‌ای بدتر محسوب می‌شود. زیرا کد سلنیوم به عناصر «رابط کاربری» (User Interface) وابسته است و عناصر رابط کاربری معمولا زیاد تغییر داده می‌شوند. هنگامی که عناصر رابط کاربری تغییر می‌کنند و نیاز به تغییر و به روز رسانی کد ایجاد می‌شود، بحث Page Object Pattern مطرح می‌شود.

کد نوشته شده در بالا، یک خطای مهم دارد و آن خطا، عدم تبعیت از اصول «خودت را تکرار نکن» (Don’t Repeat Yourself | DRY) است. بر اساس این اصل که در برنامه‌نویسی وجود دارد، برنامه‌نویس نباید یک یا چند خط کد را در مکان‌های مختلف برنامه خود تکرار کند. در این راستا، برنامه‌نویسان معمولا از برنامه‌نویسی «تابعی» (Functional Programming) یا «شی‌گرا» (Object Oriented) استفاده می‌کنند. در قطعه کدهای ارائه شده تا این لحظه در مطلب آموزش ساخت ربات اینستاگرام با پایتون چند خط کد وجود دارد که هم در برنامه کاربردی و هم در کد تست تکرار شده است.

photo content

روش استفاده از Page Object Pattern پرسشی که در این مرحله باید به آن پاسخ داد این است که اکنون که کد ورود (Login) نوشته شد، چطور می‌توان یک تست برای آن نوشت؟ کد مربوط به این کار به صورت زیر است.

AnimatedSticker.tgs0.40 KB

⭕️داده یکی از ارزشمندترین و مهم ترین سرمایه های سازمان ها و کسب و کارها هست و برای نگهداری و تولید این سرمایه فرصت های شغلی ب
⭕️داده یکی از ارزشمندترین و مهم ترین سرمایه های سازمان ها و کسب و کارها هست و برای نگهداری و تولید این سرمایه فرصت های شغلی بسیاری وجود دارد که راه رسیدن به ثروت را برای متخصصان این حوزه هموار می سازد. ➖➖➖➖➖➖➖➖➖➖➖➖  ☎️مشاوره وثبت نام 021-66075641 021-66075626    📲تلگرام و واتساپ 09222477250 ➖➖➖➖➖➖➖➖➖➖➖➖  جزئیات دوره آنلاین علم داده ↙️  http://link.jsharif.com/public/al3nu ➖➖➖➖➖➖➖➖➖➖➖➖  🔷با ما در تلگرام همراه باشید🔷  https://t.me/joinchat/AAAAAD6fyUw0AYXKLGbkow  🌐www.SCTAE.net

با اجرای این اسکریپت، به صورت خودکار وارد حساب کاربری اینستاگرام فرد می‌شود. اکنون زمان شروع کار جدی‌تر با ربات اینستاگرام رسیده است. ادامه فرایند نوشتن این اسکریپت و تکمیل آن نیز، مشابه آنچه است که تا این لحظه انجام شده است. در واقع، ربات (اسکریپت) در ادامه پست‌ها را پیمایش (Scroll)، مواردی که به آن‌ها علاقه دارد (بر اساس معیارهایی که به آن داده شده است) را پس از پیدا کردن دکمه «Like» لایک و پس از پیدا کردن جعبه درج نظر، لایک یا برای آن‌ها نظر درج می‌کند و به همین ترتیب ادامه می‌دهد. کلیه فعالیت‌های ذکر شده را می‌توان با استفاده از ابزار InstaPy انجام داد. اما پیش از استفاده از InstaPy باید با Page Object Pattern آشنا شد تا بهتر فهمید که InstaPy چگونه کار می‌کند. در بخش بعدی از مطلب آموزش ساخت ربات اینستاگرام با پایتون روش استفاده از Page Object Pattern بررسی می‌شود.

در ادامه، توضیحاتی پیرامون خطوط کد تغییر یافته و جدید ارائه شده است. خط ۱۲: برای ۲ ثانیه به خواب می‌رود تا امکان بارگذاری صفحه فراهم شود. خطوط ۱۴ و ۱۵: ورودی‌های نام‌کاربری و رمز عبور را با استفاده از CSS پیدا می‌کند. کاربر می‌تواند از هر متد دیگری که ترجیح می‌دهد، برای انجام این کار استفاده کند. خطوط ۱۷ و ۱۸: نام کاربری و رمز عبور را به ترتیب در محل ورود آن‌ها وارد می‌کند. خط ۲۰: کلمه «Login» را با XPath پیدا می‌کند. خط ۲۱: روی دکمه ورود کلیک می‌کند.

photo content

photo content

با اجرای اسکریپت بالا، می‌توان خروجی آن را مشاهده کرد. این اسکریپت، مرورگر را باز می‌کند، به اینستاگرام می‌رود، روی دکمه ورود (Login) کلیک می‌کند و به صفحه ورود به اینستاگرام می‌رود. در صفحه ورود، سه عنصر مهم وجود دارد که عبارتند از: بخش ورود نام کاربری بخش ورود رمز عبور دکمه ورود اکنون باید اسکریپت را به گونه‌ای تغییر داد که این عناصر را پیدا کند، اطلاعات هویتی صاحب صفحه کاربری شامل نام کاربری و گذرواژه را وارد و روی دکمه ورود (Login) کلیک کند

در ادامه، خط‌های کد جدید توضیح داده می‌شوند. خط ۵: پنج ثانیه زمان انتظار ایجاد می‌کند. اگر سلنیوم نتواند یک عنصر (Element) را پیدا کند، برای مدت پنج ثانیه در انتظار می‌ماند تا امکان بارگذاری همه چیز فراهم شود و مجددا تلاش کند. خط ۹: عنصر را که متن آن معادل ورود یا همان Log in است پیدا می‌کند. در اینجا، این کار با استفاده از XPath انجام می‌شود؛ اما متدهای دیگری نیز وجود دارند که با استفاده از آن‌ها نیز می‌توان این کار را انجام داد. خط ۱۰: روی عنصر برای صفحه ورود (login) کلیک می‌کند.