شیوا محمدی
شیوا محمدی

  • تاریخ عضویت: 1396/07/21
  • آخرین زمان حضور : ‫۲۵ روز قبل، چهار شنبه ۴ اردیبهشت ۱۳۹۸، ساعت ۱۸:۵۲
  • بازدید از پروفایل : 122

گزارش خطا

علت گزارش برای را بنویسید


اندروید p به طور رسمی از ضبط تماس ها، پشتیبانی خواهد کرد.

گزارش

همانطور که گوگل با انتشار نسخه Go از اندروید اوریو، آن را برای دستگاه های ضعیف و کند نیز بهینه ساخت، اکنون کار بر روی نسخه بعدی اندروید را شروع کرده است که با عنوان اندروید P شناخته می شود.

اخیرا تعدادی طرح از پروژه های منبع باز اندروید (Android Open Source Project یا AOSP) برای افزودن قابلیت پشتیبانی از پخش تون ضبط صدا، با عنوان تون فرکانس ۱۴۰۰ هرتزی، ایجاد شده است که می تواند خود را هر ۱۵ ثانیه یکبار پخش نماید در حالی که فرایند ضبط نیز در حال انجام است.

این تون صدا به جریان صدای خروجی اضافه خواهد شد و این امکان را فراهم می کند تا طرف مقابل در آنسوی تماس نیز آن را بشوند. البته باید توجه داشته باشید، این به شرط “سازگاری تنظیمات مورد نیاز مناسب” امکان پذیر است، هرچند چنین سازگاری، ممکن است در همه جا وجود نداشته باشد و وابسته به مقررات محلی برای مکانی است که دستگاه در آنجا استفاده شده و تماس برقرار می شود. به همین دلیل است که متعهد شده اند تا شرکت های ارایه دهنده خدمات، این امکان را داشته باشند که بتوانند طبق مقررات پیکربندی را انجام دهند و در صورت لزوم این تون را غیرفعال نمایند.

اگرچه به طور خاص به یک رابط برنامه نویسی نرم افزار کاربردی همگانی (Public API) اشاره نشده است که بتواند تماس های ضبط شده را در اپلیکیشن های توسعه دهندگان باز نماید اما قطعا اینطور می توان برداشت کرد که این قصد را دارند، همانطور که چندین بار نیز به این نکته اشاره کرده اند که اپلیکیشن های کاربردی و مناسب ضبط در دسترس خواهند بود.

شاید این نکته قابل توجه باشد که در طول این سال ها این قابلیت در اندروید نیز در دسترس بوده است اما گوگل اغلب دسترسی توسعه دهندگان را به آن محدود نموده بود. تولیدکننده تجهیزات اورجینال (OEMs) مانند سامسونگ، شیائومی و وان پلاس نیز به صورت غیر رسمی در این سال ها اقدام به عرضه دستگاه های سازگار با این قابلیت کرده اند. برخی حتی اجازه دسترسی به این مزیت را به اپلیکیشن های پلی استور داده اند.

با اینکه به نظر می رسد گوگل با توسعه نسخه بعدی اندروید، به سمت محدود کردن دسترسی به برخی APIهای مخفی پیش می رود، اما شاید دسترسی به برخی از قابلیت هایی کاربردی را نیز که تاکنون تحت محدودیت قرار گرفته اند، امکان پذیر شود.

منبع

 

شیوا محمدی

پسندیده شده توسط: مجید مرادی , شهرام برزنی , سهیل

8 مورد از مهارت های برنامه نویسی که تمامی توسعه‌دهندگان وب باید بدانند.

گزارش

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

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

(HyperText Markup Language Version 5 (HTML5

یک توسعه‌دهنده، از زبان اچ تی ام ال برای خلق صفحات وب استفاده می‌کند. اگرچه بسیاری از افراد HTML (زبان نشانه‌گذاری ابر متن) را یک زبان برنامه نویسی نمی‌دانند، اما فراگیری تمامی کدهای دستوری و تگ‌های آن بسیار مهم است.

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

استفاده از تمامی مهارت های برنامه نویسی وب مستلزم یادگیری HTML است.

(Cascading Style Sheets Level 3(CSS3

بعد از نوشتن یک صفحه وب با استفاده از HTML، نوبت به استفاده از سی اس اس می‌رسد. توسعه‌دهندگان وب از CSS برای اعمال ویژگی‌های بصری و بهبود ظاهر صفحات استفاده می‌کنند. یک صفحه نوشته شده با استفاده از HTML و بدون کدهای CSS، همچون ساختمانی است که به جز آجر و یا آهن به کار رفته در آن، هیچ چیز دیگری (اعم از پنجره، نما و دیگر موارد) دیده نمی‌شود، هر چند پی‌ریزی خوب و قوی داشته باشد. تصویر زیر کاربرد CSS را به خوبی نشان می‌دهد.

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

به عنوان یکی دیگر از ویژگی‌های CSS3 باید به Flexbox اشاره کرد که یک مدل طرح‌بندی محتوا محسوب می‌شود. هدف Flexbox چیدمان و ترازبندی آسان آیتم‌های درون یک ظرف با اندازه‌های نامشخص است. به عبارت دیگر، Flexbox برای طرح‌بندی پویا و انعطاف‌پذیر آیتم‌ها خلق شده است.

(JavaScript (JS

بر خلاف HTML  و CSS، جاوااسکریپت کاملا یک زبان برنامه نویسی است که تعامل با صفحات وب را ممکن می‌کند. HTML در واقع مشخص می‌کند که یک صفحه وب چه چیزهایی را در بر داشته باشد و مکان هر قسمت را مشخص می‌کند و CSS به این فضاهای تخصیص داده شده، شکل و شمایل زیبا می‌بخشد، اما این JavaScript است که به هر صفحه می‌گوید چگونه رفتار کند. بدون استفاده از JavaScript، صفحات وب ایستا و بدون تغییر باقی خواهند ماند.

یک صفحه وب بدون کد خط‌های JavaScript، تنها می‌تواند محتوا و فایل‌های چند رسانه‌ای را نمایش دهد و امکات “تعامل آن با کاربر” وجود ندارد. کاربر تنها می‌تواند محتوای صفحه را تماشا کند. JavaScript را باید آخرین مورد در بین مهارت های برنامه نویسی برای ایجاد فرانت اند (Front-End) دانست. گفتنی است Front-End به بخشی گفته می‌شود که کاربر آن را مشاهده کرده و با آن تعامل دارد. مابقی بخش‌ها به بک اند (Back-End) تعلق داشته و قسمت‌هایی هستند که دور از چشم کاربر، اعمال مختلف را پیش می‌برند.

(Asynchronous JavaScript and XML (Ajax

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

PHP Hypertext Processor

پی اچ پی همانند JavaScript یک زبان برنامه نویسی است، با این تفاوت که برای ایجاد Back-End کاربرد داشته و توسعه‌دهندگان وب از آن برای ایجاد صفحات پویا بر روی یک سرور استفاده می‌کنند. سرور یک برنامه مشخص را اجرا کرده و نتیجه را به مرورگر ارسال می‌کند. به عبارت دیگر، وقتی شما با یک وب سایت تعامل دارید، ارتباط شما با JavaScript است. JavaScript اطلاعات گرفته شده از کاربر را به سرور ارسال می‌کند تا در آنجا یک برنامه نوشته شده به وسیله PHP، آن‌ها را آنالیز کرده و سپس بازگرداند.

در نظر داشته باشید PHP تنها یکی از زبان‌های برنامه نویسی سمت سرور است و زبان‌های دیگری نیز همچون جاوا، روبی، ای اس پی، پایتون و پرل برای این کار وجود دارند. دلیل اهمیت PHP و قرارگیری آن در زمره مهمترین مهارت های برنامه نویسی وب، استفاده از آن در سیستم مدیریت محتوای وردپرس است. امروز ده‌ها میلیون وب سایت در دنیای وب وجود دارند که بیش از یک سوم آن‌ها توسط وردپرس ایجاد شده‌اند. PHP را همچنین باید پایه و اساس سیستم مدیریت محتوای جوملا و دروپال و همچنین بزرگترین شبکه اجتماعی دنیا یعنی فیس بوک دانست.

(Structured Query Language (SQL

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

(Version Control Systems (VCS

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

Git را باید پرکاربردترین نرم افزار برای Version Control دانست. وب سایت GitHub یکی از محبوب‌ترین مکان‌ها در اینترنت برای توسعه‌دهندگان است که در آنجا به مقایسه و بحث پیرامون کدهای خود می‌پردازند. بهتر است تا با مفهوم این ابزار آشنا شده و به جمع یکی از بزرگترین محافلی که توسعه‌دهندگان در آنجا ایده‌های خود را تبادل می‌کنند، بپیوندید.

Agile Methodology

روش Agile را نمی‌توان یک تکنولوژی مستقل دانست، پس بهتر است تا آن را یک تکنیک توسعه عنوان کنیم. این متد در تضاد با توسعه پی‌درپی قرار دارد، روشی که پیش از این، استاندارد توسعه بود. این متد توسعه سنتی، از آغاز فاز فراحی اجرا شده و در تمامی مراحل توسعه حضور دارد. روش Agile کار خود را حتی تا مرحله آزمایش، عرضه و مراقب ادامه می‌دهد و در تمامی مراحل توسعه و حتی در مرحله مراقبت نیز حضور دارد. با استفاده از روش Agile، مشکل ساکن‌بودن و عدم انعطاف‌پذیری مراحل ذکر شده در بالا حل می‌شود.

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

منبع

شیوا محمدی

پسندیده شده توسط: مجید مرادی , شهرام برزنی , زهره

چگونه با سلنیوم یک وب کراولر ایجاد کنیم؟ (ساخت خزنده وب)

گزارش

با استفاده از وب کراولر می‌توان بدون نیاز به انجام برخی اعمال به صورت دستی، آن‌ها را به صورت خودکار انجام داد. ساخت یک کراوبر وب به کاربر کمک می‌کند اعمال روتین خود در وب را بدون نیاز به تکرار و به طور اتوماتیک انجام بدهد.

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

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

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

  • تنظیم سلنیوم
  • استفاده از اینسپکتور گوگل کروم به منظور تشخیص عناصر صفحه وب
  • نوشتن یک برنامه جاوا به منظور خودکارسازی گوگل کروم

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

تنظیم سلنیوم

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

وب درایور

با رفتن به صفحه‌ای مخصوص در وب سایت Google می‌توانید به صفحه دانلود سلنیوم وارد شوید. در ادامه باید بر روی جدیدترین ریلیز آن کلیک کرده و فایل مناسب با سیستم عامل خود (ویندوز، لینوکس و یا مک) را انتخاب کنید. بسته دانلودی، یک فایل دارای پسوند ZIP بوده و درون آن فایلی قابل اجرا با نام Chromedriver.exe وجود دارد. بعد از دریافت فایل فشرده شده، محتویات درون آن را در مسیری مناسب همچون C:\WebDrivers\chromedriver.exe استخراج کنید. بهتر است شما نیز در همین مسیر فایل را استخراج کنید، چرا که در ادامه، درون برنامه جاوا از این آدرس استفاده خواهیم کرد.

ماژول‌های جاوا

قدم بعدی، تنظیم ماژول‌های جاوایی است که برای استفاده از سلنیوم مورد نیاز هستند. تصور می‌کنیم شما در حال استفاده از Maven برای ساخت برنامه جاوا هستید، پس باید وابستگی زیر را به POM.xml خود اضافه کنید:

<dependencies>
<dependency>
<groupId>org.seleniumhq.selenium</groupId>
<artifactId>selenium-java</artifactId>
<version>3.8.1</version>
</dependency>
</dependencies>

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

نخستین قدم‌های سلنیوم

در اینجا کار با سلنیوم را به منظور ایجاد وب کراولر آغاز می‌کنیم. نخستین قدم ایجاد یک نمونه ChromeDriver است:

WebDriver driver = new ChromeDriver();

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

driver.get(“http://www.google.com”);

یک مرجع به عنصر نوشتاری ورودی پیدا کنید تا بلکه بتوان عملیات جستجو را انجام داد. عنصر ورودی نوشتاری دارای نام q است. در اینجا با استفاده از متد ()WebDriver.findElement عناصر HTML درون صفحه را پیدا می‌کنیم:

WebElement element = driver.findElement(By.name(“q”));

می‌توان نوشته را به هر عنصری با استفاده از متد ()sendKeys ارسال کرد. در ایجا یک عبارت جستجویی ارسال کرده و آن را با یک خط جدید به اتمام می‌رسانیم. به همین دلیل جستجو خیلی سریع آغاز می‌شود:

element.sendKeys(“terminator\n”);

اکنون که فرآیند جستجو در حال اجرا است، باید برای صفحات نتیجه منتظر بمانیم. می‌توان آن را با کد زیر انجام داد:

new WebDriverWait(driver, 10)
.until(d -> d.getTitle().toLowerCase().startsWith(“terminator”));

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

System.out.println(“Title: ” + driver.getTitle());

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

driver.quit();

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

استفاده از اینسپکتور گوگل کروم

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

گوگل کروم را باز کرده و یک صفحه وب باز کنید. به عنوان نمونه ما در این مطلب، به صفحه فیلم Justice League (2017) در وب سایت IMDb رفته‌ایم. اکنون می‌خواهیم عناصری مورد نظر برای نشانه گرفتن را پیدا کنیم. مثلا در اینجا بخش خلاصه فیلم مد نظر است. بر روی بخش خلاصه (Summary) کلیک راست کرده و گزینه Inspect را انتخاب کنید.

در تب Elements می‌توان نوشته مربوط به بخش خلاصه را مشاهده کرد که درون یک تگ div به همراه کلاس summary_text قرار دارد.

استفاده از CSS یا XPath برای انتخاب

در سلنیوم از انتخاب عناصر صفحه با استفاده از CSS پشتیبانی می‌شود. به عنوان نمونه برای انتخاب متن مربوط به بخش خلاصه از صفحه بالا می‌توان نوشت:

WebElement summaryEl = driver.findElement(By.cssSelector(“div.summary_text”));

کاربران حتی قادر هستند از XPath به منظور انتخاب عناصر به شیوه‌ای تقریبا یکسان استفاده کنند. مجددا برای انتخاب متن خلاصه باید نوشت:

WebElement summaryEl = driver.findElement(By.xpath(“//div[@class=’summary_text’]”));

XPath و CSS هر دو قابلیت‌های مشابهی دارند، پس انتخاب یکی از آن‌ها تنها به سلیقه کاربر برمی‌گردد.

خواندن گوگل میل از جاوا

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

کار را با Chrome Driver آغاز کرده و به آدرس Gmail.com بروید. تا بارگذاری کامل صفحه منتظر بمانید.

WebDriver driver = new ChromeDriver();
driver.get(“https://gmail.com”);
new WebDriverWait(driver, 10)
.until(d -> d.getTitle().toLowerCase().startsWith(“gmail”));

در قدم بعد، به دنبال خانه ایمیل بگردید (این فیلد به وسیله آیدی identifierId پر شده است) و آدرس ایمیل را وارد کنید. سپس بر روی دکمه Next کلیک کرده و تا زمان بارگذاری صفحه رمز عبور، منتظر بمانید.

/* Type in username/email */
{
driver.findElement(By.cssSelector(“#identifierId”)).sendKeys(email);
driver.findElement(By.cssSelector(“.RveJvd”)).click();
}

new WebDriverWait(driver, 10)
.until(d -> ! d.findElements(By.xpath(“//div[@id=’password’]”)).isEmpty() );

اکنون پسورد را وارد کرده و دکمه Next را مجددا انتخاب کنید. سپس باید تا بارگذاری صفحه جیمیل منتظر ماند.

/* Type in password */
{
driver
.findElement(By.xpath(“//div[@id=’password’]//input[@type=’password’]”))
.sendKeys(password);
driver.findElement(By.cssSelector(“.RveJvd”)).click();
}

new WebDriverWait(driver, 10)
.until(d -> ! d.findElements(By.xpath(“//div[@class=’Cp’]”)).isEmpty() );

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

List<WebElement> rows = driver
.findElements(By.xpath(“//div[@class=’Cp’]//table/tbody/tr”));
for (WebElement tr : rows) {
}

برای هر ورودی، فیلد From را دریافت کنید. برخی از ورودی‌های From ممکن است دارای چندین عنصر باشد و این موضوع به تعداد کاربران درگیر درون آن مکالمه بستگی دارد.

{
/* From Element */
System.out.println(“From: “);
for (WebElement e : tr
.findElements(By.xpath(“.//div[@class=’yW’]/*”))) {
System.out.println(” ” +
e.getAttribute(“email”) + “, ” +
e.getAttribute(“name”) + “, ” +
e.getText());
}
}

اکنون موضوع را دریافت می‌کنیم.

{
/* Subject */
System.out.println(“Sub: ” + tr.findElement(By.xpath(“.//div[@class=’y6′]”)).getText());
}

در مرحله بعدی از فرآیند ایجاد و استفاده از وب کراولر ، زمان و تاریخ را دریافت می‌کنیم.

{
/* Date/Time */
WebElement dt = tr.findElement(By.xpath(“./td[8]/*”));
System.out.println(“Date: ” + dt.getAttribute(“title”) + “, ” +
dt.getText());
}

در اینجا تعداد سطرهای ایمیل‌های درون صفحه مشخص می‌شود.

System.out.println(rows.size() + ” mails.”);

در نهایت نوبت به بستن مرورگر می‌رسد.

driver.quit();

به منظور تکرار می‌توان از سلنیوم با گوگل کروم، برای خزیدن در میان وب سایت‌هایی که دارای انبوهی از کدهای جاوااسکریپ هستند استفاده کرد. با استفاده از گوگل کروم اینسپکتور می‌توان اطلاعات زیادی درباره CSS و XPath به دست آورد. این اطلاعات برای اجرای دستورات بعدی بسیار کاربردی خواهند بود.

منبع

 

شیوا محمدی

پسندیده شده توسط: مجید مرادی , شهرام برزنی
ثبت نام ورود