مقدمة عن السيلينيوم في بايثون 3

Introduction Selenium Python 3



السيلينيوم هو إطار يستخدم لاختبار تطبيقات الويب. يقوم السيلينيوم بأتمتة المتصفح ، مثل Chrome أو Firefox ، لإجراء الاختبارات على موقع الويب الذي تريده. السيلينيوم هو أيضًا أداة قوية جدًا في تجريف الويب. يدعم السيلينيوم JavaScript وجميع ميزات المتصفح الحديثة. هذه الأداة فعالة جدًا في استخراج المعلومات من مواقع الويب.

ستوضح لك هذه المقالة كيفية إعداد Selenium على توزيعة Linux الخاصة بك (على سبيل المثال ، Ubuntu) ، بالإضافة إلى كيفية تنفيذ أتمتة الويب الأساسية وإلغاء بيانات الويب باستخدام مكتبة Selenium Python 3.







المتطلبات الأساسية

لتجربة الأوامر والأمثلة المستخدمة في هذه المقالة ، يجب أن يكون لديك ما يلي:



1) توزيعة Linux (يفضل Ubuntu) مثبتة على جهاز الكمبيوتر الخاص بك.
2) Python 3 مثبت على جهاز الكمبيوتر الخاص بك.
3) تثبيت PIP 3 على جهاز الكمبيوتر الخاص بك.
4) متصفح الويب Google Chrome أو Firefox مثبتًا على جهاز الكمبيوتر الخاص بك.



يمكنك العثور على العديد من المقالات حول هذه الموضوعات على LinuxHint.com . تأكد من مراجعة هذه المقالات إذا كنت بحاجة إلى مزيد من المساعدة.





إعداد بيئة Python 3 الافتراضية للمشروع

تُستخدم بيئة Python الافتراضية لإنشاء دليل مشروع Python معزول. سيتم تثبيت وحدات Python النمطية التي تقوم بتثبيتها باستخدام PIP في دليل المشروع فقط ، وليس بشكل عام.

بايثون فيرتالينف الوحدة النمطية لإدارة بيئات Python الافتراضية.



يمكنك تثبيت Python فيرتالينف الوحدة النمطية عالميًا باستخدام PIP 3 ، على النحو التالي:

sudo pip3 قم بتثبيت Virtualenv

سيقوم PIP3 بتنزيل جميع الوحدات المطلوبة وتثبيتها عالميًا.

في هذه المرحلة ، لغة Python فيرتالينف يجب تثبيت الوحدة على مستوى العالم.

قم بإنشاء دليل المشروع ثعبان السيلينيوم الأساسي / في دليل العمل الحالي الخاص بك ، على النحو التالي:

$ mkdir -pv python-selenium-basic / driver

انتقل إلى دليل المشروع الذي تم إنشاؤه حديثًا ثعبان السيلينيوم الأساسي / ، على النحو التالي:

$قرص مضغوطثعبان السيلينيوم الأساسي /

قم بإنشاء بيئة افتراضية Python في دليل المشروع الخاص بك باستخدام الأمر التالي:

$ virtualenv.الحسد

يجب الآن إنشاء بيئة Python الافتراضية في دليل مشروعك.

قم بتنشيط بيئة Python الافتراضية في دليل المشروع الخاص بك عن طريق الأمر التالي:

المصدر $.الحسد/ بن / تفعيل

كما ترى ، يتم تنشيط بيئة Python الافتراضية لدليل المشروع هذا.

تثبيت مكتبة سيلينيوم بايثون

مكتبة Selenium Python متاحة في مستودع Python PyPI الرسمي.

يمكنك تثبيت هذه المكتبة باستخدام PIP 3 كما يلي:

$ pip3 قم بتثبيت السيلينيوم

يجب الآن تثبيت مكتبة Selenium Python.

الآن بعد أن تم تثبيت مكتبة Selenium Python ، فإن الشيء التالي الذي عليك القيام به هو تثبيت برنامج تشغيل ويب لمتصفح الويب المفضل لديك. في هذه المقالة ، سأوضح لك كيفية تثبيت برامج تشغيل الويب Firefox و Chrome على السيلينيوم.

تثبيت برنامج تشغيل Firefox Gecko

يتيح لك برنامج تشغيل Firefox Gecko التحكم في متصفح الويب Firefox أو تشغيله تلقائيًا باستخدام السيلينيوم.

لتنزيل برنامج تشغيل Firefox Gecko ، قم بزيارة يصدر جيثب صفحة موزيلا / جيكودريفير من متصفح الويب.

كما ترى ، v0.26.0 هو أحدث إصدار من Firefox Gecko Driver في وقت كتابة هذه المقالة.

لتنزيل برنامج تشغيل Firefox Gecko ، قم بالتمرير لأسفل قليلاً وانقر فوق أرشيف Linux geckodriver tar.gz ، اعتمادًا على بنية نظام التشغيل لديك.

إذا كنت تستخدم نظام تشغيل 32 بت ، فانقر فوق geckodriver-v0.26.0-linux32.tar.gz حلقة الوصل.

إذا كنت تستخدم نظام تشغيل 64 بت ، فانقر فوق geckodriver-v0.26.0-linuxx64.tar.gz حلقة الوصل.

في حالتي ، سأقوم بتنزيل الإصدار 64 بت من Firefox Gecko Driver.

يجب أن يطالبك متصفحك بحفظ الأرشيف. يختار احفظ الملف ثم انقر فوق نعم .

يجب تنزيل أرشيف Firefox Gecko Driver بتنسيق ~ / التنزيلات الدليل.

قم باستخراج ملف geckodriver-v0.26.0-linux64.tar.gz أرشيف من ~ / التنزيلات دليل إلى السائقين/ دليل مشروعك عن طريق إدخال الأمر التالي:

$قطران -xzf~/التحميلات/geckodriver-v0.26.0-linux64.tar.gzالسائقين/

بمجرد استخراج أرشيف Firefox Gecko Driver ، ملف سائق الوزغة يجب إنشاء ملف ثنائي بتنسيق السائقين/ دليل مشروعك ، كما ترى في لقطة الشاشة أدناه.

اختبار برنامج سيلينيوم فايرفوكس جيكو

في هذا القسم ، سأوضح لك كيفية إعداد أول برنامج نصي من Selenium Python لاختبار ما إذا كان Firefox Gecko Driver يعمل أم لا.

أولاً ، افتح دليل المشروع ثعبان السيلينيوم الأساسي / مع IDE أو المحرر المفضل لديك. في هذه المقالة ، سأستخدم Visual Studio Code.

قم بإنشاء نص Python النصي الجديد ex01.py ، واكتب الأسطر التالية في البرنامج النصي.

من عندالسيلينيوميستوردwebdriver
من عندالسيلينيوم.webdriver.مشترك.مفاتيح يستوردمفاتيح
من عند زمن يستوردنايم
المتصفح=webdriver.ثعلب النار(قابل للتنفيذ='./drivers/geckodriver')
المتصفح.احصل على('http://www.google.com')
نايم(5)
المتصفح.استقال()

بمجرد الانتهاء ، احفظ ملف ex01.py نص بايثون.

سأشرح الكود في قسم لاحق من هذه المقالة.

يقوم السطر التالي بتكوين السيلينيوم لاستخدام برنامج تشغيل Firefox Gecko من ملف السائقين/ دليل مشروعك.

لاختبار ما إذا كان Firefox Gecko Driver يعمل مع السيلينيوم ، قم بتشغيل ما يلي ex01.py نص بايثون:

$ python3 ex01.السنة التحضيرية

يجب أن يزور متصفح الويب Firefox موقع Google.com تلقائيًا ويغلق نفسه بعد 5 ثوانٍ. إذا حدث هذا ، فإن برنامج تشغيل Selenium Firefox Gecko يعمل بشكل صحيح.

تثبيت برنامج تشغيل Chrome Web

يسمح لك Chrome Web Driver بالتحكم في متصفح الويب Google Chrome أو تشغيله تلقائيًا باستخدام السيلينيوم.

يجب عليك تنزيل الإصدار نفسه من Chrome Web Driver كتنزيله من متصفح الويب Google Chrome.

للعثور على رقم إصدار متصفح الويب Google Chrome ، تفضل بزيارة الكروم: // الإعدادات / المساعدة في جوجل كروم. يجب أن يكون رقم الإصدار في حول كروم ، كما ترى في لقطة الشاشة أدناه.

في حالتي ، رقم الإصدار هو 83.0.4103.116 . الأجزاء الثلاثة الأولى من رقم الإصدار ( 83.0.4103 ، في حالتي) يجب أن تطابق الأجزاء الثلاثة الأولى من رقم إصدار Chrome Web Driver.

لتنزيل Chrome Web Driver ، قم بزيارة صفحة تنزيل Chrome Driver الرسمية .

في ال الإصدارات الحالية ، سيتوفر Chrome Web Driver لأحدث إصدارات متصفح الويب Google Chrome ، كما ترى في لقطة الشاشة أدناه.

إذا كان إصدار Google Chrome الذي تستخدمه ليس في الإصدارات الحالية ، قم بالتمرير لأسفل قليلاً ، وستجد الإصدار الذي تريده.

بمجرد النقر فوق إصدار Chrome Web Driver الصحيح ، يجب أن ينقلك إلى الصفحة التالية. اضغط على chromedriver_linux64.zip الرابط ، كما هو موضح في لقطة الشاشة أدناه.

يجب الآن تنزيل أرشيف Chrome Web Driver.

يجب الآن تنزيل أرشيف Chrome Web Driver بتنسيق ~ / التنزيلات الدليل.

يمكنك استخراج ملف chromedriver-linux64.zip أرشيف من ~ / التنزيلات دليل إلى السائقين/ دليل مشروعك بالأمر التالي:

بفك ضغط $~/ التنزيلات / chromedriver_linux64.أزيز-d السائقين /

بمجرد استخراج أرشيف Chrome Web Driver ، ملف chromedriver يجب إنشاء ملف ثنائي بتنسيق السائقين/ دليل مشروعك ، كما ترى في لقطة الشاشة أدناه.

اختبار برنامج تشغيل الويب سيلينيوم كروم

في هذا القسم ، سأوضح لك كيفية إعداد أول برنامج نصي من Selenium Python لاختبار ما إذا كان Chrome Web Driver يعمل أم لا.

أولاً ، قم بإنشاء نص Python النصي الجديد ex02.py ، واكتب سطور الرموز التالية في البرنامج النصي.

من عندالسيلينيوميستوردwebdriver
من عندالسيلينيوم.webdriver.مشترك.مفاتيح يستوردمفاتيح
من عند زمن يستوردنايم
المتصفح=webdriver.كروم(قابل للتنفيذ='./drivers/chromedriver')
المتصفح.احصل على('http://www.google.com')
نايم(5)
المتصفح.استقال()

بمجرد الانتهاء ، احفظ ملف ex02.py نص بايثون.

سأشرح الكود في قسم لاحق من هذه المقالة.

يعمل السطر التالي على تهيئة السيلينيوم لاستخدام برنامج تشغيل Chrome Web Driver من ملف السائقين/ دليل مشروعك.

لاختبار ما إذا كان Chrome Web Driver يعمل مع السيلينيوم ، قم بتشغيل ملف ex02.py نص Python ، على النحو التالي:

$ python3 ex01.السنة التحضيرية

يجب أن يزور متصفح الويب Google Chrome موقع Google.com تلقائيًا ويغلق نفسه بعد 5 ثوانٍ. إذا حدث هذا ، فإن برنامج تشغيل Selenium Firefox Gecko يعمل بشكل صحيح.

أساسيات تجريف الويب بالسيلينيوم

سأستخدم متصفح الويب Firefox من الآن فصاعدًا. يمكنك أيضًا استخدام Chrome ، إذا كنت ترغب في ذلك.

يجب أن يبدو البرنامج النصي الأساسي Selenium Python مثل البرنامج النصي الموضح في لقطة الشاشة أدناه.

أولاً ، قم باستيراد السيلينيوم webdriver من السيلينيوم وحدة.

بعد ذلك ، قم باستيراد ملف مفاتيح من عند selenium.webdriver.common.keys . سيساعدك هذا في إرسال ضغطات مفاتيح لوحة المفاتيح إلى المتصفح الذي تقوم بأتمتة من السيلينيوم.

السطر التالي ينشئ ملف المتصفح كائن لمتصفح الويب Firefox باستخدام برنامج تشغيل Firefox Gecko (Webdriver). يمكنك التحكم في إجراءات متصفح Firefox باستخدام هذا الكائن.

لتحميل موقع ويب أو عنوان URL (سأقوم بتحميل الموقع https://www.duckduckgo.com )، اتصل ب احصل على() طريقة المتصفح على متصفح Firefox الخاص بك.

باستخدام السيلينيوم ، يمكنك كتابة الاختبارات الخاصة بك ، وإجراء حذف للويب ، وأخيراً إغلاق المتصفح باستخدام ملف استقال() طريقة المتصفح موضوع.

أعلاه هو التخطيط الأساسي لبرنامج نصي من Selenium Python. سوف تكتب هذه السطور في جميع نصوص بايثون السيلينيوم الخاصة بك.

مثال 1: طباعة عنوان صفحة ويب

سيكون هذا أسهل مثال تمت مناقشته باستخدام السيلينيوم. في هذا المثال ، سنطبع عنوان صفحة الويب التي سنزورها.

قم بإنشاء الملف الجديد ex04.py واكتب سطور الرموز التالية فيه.

من عندالسيلينيوميستوردwebdriver
من عندالسيلينيوم.webdriver.مشترك.مفاتيح يستوردمفاتيح

المتصفح=webdriver.ثعلب النار(قابل للتنفيذ='./drivers/geckodriver')

المتصفح.احصل على('https://www.duckduckgo.com')
مطبعة('العنوان:٪ s'متصفح ٪.لقب)
المتصفح.استقال()

بمجرد الانتهاء ، احفظ الملف.

هنا ، المتصفح. العنوان يستخدم للوصول إلى عنوان صفحة الويب التي تمت زيارتها و مطبعة() سيتم استخدام الوظيفة لطباعة العنوان في وحدة التحكم.

بعد تشغيل ملف ex04.py يجب أن:

1) افتح Firefox
2) قم بتحميل صفحة الويب التي تريدها
3) قم بإحضار عنوان الصفحة
4) اطبع العنوان على وحدة التحكم
5) وأخيرًا ، أغلق المتصفح

كما ترى ، فإن ex04.py قام البرنامج النصي بطباعة عنوان صفحة الويب بشكل جيد في وحدة التحكم.

$ python3 ex04.السنة التحضيرية

مثال 2: طباعة عناوين صفحات ويب متعددة

كما في المثال السابق ، يمكنك استخدام نفس الطريقة لطباعة عنوان صفحات ويب متعددة باستخدام حلقة Python.

لفهم كيفية عمل ذلك ، قم بإنشاء نص Python النصي الجديد ex05.py واكتب سطور التعليمات البرمجية التالية في البرنامج النصي:

من عندالسيلينيوميستوردwebdriver
من عندالسيلينيوم.webdriver.مشترك.مفاتيح يستوردمفاتيح

المتصفح=webdriver.ثعلب النار(قابل للتنفيذ='./drivers/geckodriver')


عناوين url= ['https://www.duckduckgo.com'و 'https://linuxhint.com'و 'https://yahoo.com']
لعنوان urlفيعناوين url:
المتصفح.احصل على(عنوان url)
مطبعة('العنوان:٪ s'متصفح ٪.لقب)
المتصفح.استقال()

بمجرد الانتهاء ، احفظ نص بايثون ex05.py .

هنا ، عناوين url القائمة تحتفظ بعنوان URL لكل صفحة ويب.

إلى ل حلقة تستخدم للتكرار من خلال عناوين url قائمة المواد.

في كل تكرار ، يخبر السيلينيوم المتصفح بزيارة ملف عنوان url والحصول على عنوان صفحة الويب. بمجرد استخراج السيلينيوم لعنوان صفحة الويب ، تتم طباعته في وحدة التحكم.

قم بتشغيل نص بايثون ex05.py ، وسترى عنوان كل صفحة ويب في عناوين url قائمة.

$ python3 ex05.السنة التحضيرية

هذا مثال على كيفية قيام السيلينيوم بأداء نفس المهمة مع العديد من صفحات الويب أو مواقع الويب.

مثال 3: استخراج البيانات من صفحة ويب

في هذا المثال ، سأوضح لك أساسيات استخراج البيانات من صفحات الويب باستخدام السيلينيوم. يُعرف هذا أيضًا باسم تجريف الويب.

أولاً ، قم بزيارة Random.org رابط من Firefox. يجب أن تنشئ الصفحة سلسلة عشوائية ، كما ترى في لقطة الشاشة أدناه.

لاستخراج بيانات السلسلة العشوائية باستخدام السيلينيوم ، يجب أن تعرف أيضًا تمثيل HTML للبيانات.

لمعرفة كيفية تمثيل بيانات السلسلة العشوائية في HTML ، حدد بيانات السلسلة العشوائية واضغط على زر الماوس الأيمن (RMB) وانقر فوق فحص العنصر (س) ، كما هو موضح في لقطة الشاشة أدناه.

يجب عرض تمثيل HTML للبيانات بتنسيق مفتش علامة التبويب ، كما ترى في لقطة الشاشة أدناه.

يمكنك أيضًا النقر فوق ملف رمز الفحص ( ) لفحص البيانات من الصفحة.

انقر فوق رمز الفحص () وقم بالمرور فوق بيانات السلسلة العشوائية التي تريد استخراجها. يجب عرض تمثيل HTML للبيانات كما كان من قبل.

كما ترى ، يتم تغليف بيانات السلسلة العشوائية بتنسيق HTML ل علامة ويحتوي على الفئة البيانات .

الآن بعد أن عرفنا تمثيل HTML للبيانات التي نريد استخراجها ، سننشئ نصًا برمجيًا Python لاستخراج البيانات باستخدام السيلينيوم.

قم بإنشاء نص Python النصي الجديد ex06.py واكتب سطور الرموز التالية في البرنامج النصي

من عندالسيلينيوميستوردwebdriver
من عندالسيلينيوم.webdriver.مشترك.مفاتيح يستوردمفاتيح

المتصفح=webdriver.ثعلب النار(قابل للتنفيذ='./drivers/geckodriver')

المتصفح.احصل على(https://www.random.org/strings/؟num=1&len=20&digits
= on & upperalpha = on & loweralpha = on & unique = on & format = html & rnd = new '
)

البيانات=المتصفح.find_element_by_css_selector('بيانات مسبقة')
مطبعة(البياناتنص)
المتصفح.استقال()

بمجرد الانتهاء ، احفظ ملف ex06.py نص بايثون.

هنا ، browser.get () طريقة تحميل صفحة الويب في متصفح Firefox.

ال browser.find_element_by_css_selector () يبحث الأسلوب في كود HTML للصفحة عن عنصر معين ويعيده.

في هذه الحالة ، سيكون العنصر البيانات المسبقة ، ال ل العلامة التي لها اسم الفئة البيانات .

تحت ال البيانات المسبقة تم تخزين العنصر في البيانات عامل.

ثم يقوم البرنامج النصي بطباعة محتوى النص المحدد البيانات المسبقة عنصر.

إذا قمت بتشغيل ملف ex06.py نص Python ، يجب أن يستخرج بيانات السلسلة العشوائية من صفحة الويب ، كما ترى في لقطة الشاشة أدناه.

$ python3 ex06.السنة التحضيرية

كما ترى ، في كل مرة أقوم بتشغيل ملف ex06.py نص Python ، فهو يستخرج بيانات سلسلة عشوائية مختلفة من صفحة الويب.

مثال 4: استخراج قائمة البيانات من صفحة الويب

أوضح لك المثال السابق كيفية استخراج عنصر بيانات واحد من صفحة ويب باستخدام السيلينيوم. في هذا المثال ، سأوضح لك كيفية استخدام السيلينيوم لاستخراج قائمة بالبيانات من صفحة ويب.

أولاً ، قم بزيارة مولد اسم عشوائي من متصفح الويب Firefox. سيولد هذا الموقع عشرة أسماء عشوائية في كل مرة تعيد فيها تحميل الصفحة ، كما ترى في لقطة الشاشة أدناه. هدفنا هو استخراج هذه الأسماء العشوائية باستخدام السيلينيوم.

إذا قمت بفحص قائمة الأسماء عن كثب ، يمكنك أن ترى أنها قائمة مرتبة ( موت بطاقة شعار). ال موت تتضمن العلامة أيضًا اسم الفئة لائحة الأسماء . يتم تمثيل كل من الأسماء العشوائية كعنصر قائمة ( في ال tag) داخل ملف موت بطاقة شعار.

لاستخراج هذه الأسماء العشوائية ، قم بإنشاء برنامج Python النصي الجديد ex07.py واكتب سطور الرموز التالية في البرنامج النصي.

من عندالسيلينيوميستوردwebdriver
من عندالسيلينيوم.webdriver.مشترك.مفاتيح يستوردمفاتيح

المتصفح=webdriver.ثعلب النار(قابل للتنفيذ='./drivers/geckodriver')

المتصفح.احصل على('http://random-name-generator.info/')

لائحة الأسماء=المتصفح.find_elements_by_css_selector('ol.nameList li')

لاسمفيلائحة الأسماء:
مطبعة(اسم.نص)

المتصفح.استقال()

بمجرد الانتهاء ، احفظ ملف ex07.py نص بايثون.

هنا ، browser.get () طريقة تحميل صفحة ويب منشئ الاسم العشوائي في متصفح Firefox.

ال browser.find_elements_by_css_selector () يستخدم الأسلوب محدد CSS ol.nameList li للعثور على كل شيء في ال عناصر داخل موت علامة تحمل اسم الفصل لائحة الأسماء . لقد قمت بتخزين كل المحدد في ال العناصر الموجودة في لائحة الأسماء عامل.

إلى ل حلقة تستخدم للتكرار من خلال لائحة الأسماء قائمة من في ال عناصر. في كل تكرار ، يكون محتوى ملف في ال تتم طباعة العنصر على وحدة التحكم.

إذا قمت بتشغيل ملف ex07.py نص Python ، سيقوم بجلب جميع الأسماء العشوائية من صفحة الويب وطباعتها على الشاشة ، كما ترى في لقطة الشاشة أدناه.

$ python3 ex07.السنة التحضيرية

إذا قمت بتشغيل البرنامج النصي مرة ثانية ، فيجب أن يعرض قائمة جديدة بأسماء المستخدمين العشوائية ، كما ترى في لقطة الشاشة أدناه.

مثال 5: إرسال النموذج - البحث في DuckDuckGo

هذا المثال بسيط مثل المثال الأول. في هذا المثال ، سوف أزور محرك بحث DuckDuckGo وأبحث عن المصطلح مقر السيلينيوم باستخدام السيلينيوم.

الزيارة الأولى محرك بحث DuckDuckGo من متصفح الويب Firefox.

إذا قمت بفحص حقل إدخال البحث ، فيجب أن يحتوي على المعرف search_form_input_homepage ، كما ترى في لقطة الشاشة أدناه.

الآن ، قم بإنشاء نص Python النصي الجديد ex08.py واكتب سطور الرموز التالية في البرنامج النصي.

من عندالسيلينيوميستوردwebdriver
من عندالسيلينيوم.webdriver.مشترك.مفاتيح يستوردمفاتيح
المتصفح=webdriver.ثعلب النار(قابل للتنفيذ='./drivers/geckodriver')
المتصفح.احصل على('https://duckduckgo.com/')
البحث=المتصفح.find_element_by_id('search_form_input_homepage')
البحثSend_keys('مقر السيلينيوم'+ مفاتيح.أدخل)

بمجرد الانتهاء ، احفظ ملف ex08.py نص بايثون.

هنا ، browser.get () طريقة تحميل الصفحة الرئيسية لمحرك بحث DuckDuckGo في متصفح الويب Firefox.

ال browser.find_element_by_id () طريقة تحديد عنصر الإدخال مع المعرف search_form_input_homepage ويخزنها في البحث عامل.

ال searchInput.send_keys () يتم استخدام الطريقة لإرسال بيانات الضغط على المفتاح إلى حقل الإدخال. في هذا المثال ، يرسل السلسلة مقر السيلينيوم ، ويتم الضغط على مفتاح Enter باستخدام ملف المفاتيح ثابت.

بمجرد أن يتلقى محرك البحث DuckDuckGo مفتاح Enter ، اضغط على ( المفاتيح ) ، فإنه يبحث ويعرض النتيجة.

قم بتشغيل ex08.py نص Python ، على النحو التالي:

$ python3 ex08.السنة التحضيرية

كما ترى ، زار متصفح الويب Firefox محرك بحث DuckDuckGo.

يتم كتابته تلقائيًا مقر السيلينيوم في مربع نص البحث.

بمجرد أن يتلقى المتصفح مفتاح Enter ، اضغط على ( المفاتيح ) ، عرض نتيجة البحث.

مثال 6: إرسال نموذج على W3Schools.com

في المثال الخامس ، كان تقديم نموذج محرك بحث DuckDuckGo سهلاً. كل ما عليك فعله هو الضغط على مفتاح Enter. ولكن لن يكون هذا هو الحال بالنسبة لجميع عمليات إرسال النماذج. في هذا المثال ، سأوضح لك معالجة أكثر تعقيدًا للنماذج.

أولاً ، قم بزيارة صفحة نماذج HTML الخاصة بـ W3Schools.com من متصفح الويب Firefox. بمجرد تحميل الصفحة ، يجب أن تشاهد نموذجًا نموذجيًا. هذا هو النموذج الذي سنقدمه في هذا المثال.

إذا قمت بفحص النموذج ، فإن ملف الاسم الأول يجب أن يحتوي حقل الإدخال على المعرف fname ، ال الكنية يجب أن يحتوي حقل الإدخال على المعرف lname ، و ال زر الإرسال يجب أن يكون نوع إرسال ، كما ترى في لقطة الشاشة أدناه.

لإرسال هذا النموذج باستخدام السيلينيوم ، قم بإنشاء نص Python النصي الجديد ex09.py واكتب سطور الرموز التالية في البرنامج النصي.

من عندالسيلينيوميستوردwebdriver
من عندالسيلينيوم.webdriver.مشترك.مفاتيح يستوردمفاتيح
المتصفح=webdriver.ثعلب النار(قابل للتنفيذ='./drivers/geckodriver')
المتصفح.احصل على('https://www.w3schools.com/html/html_forms.asp')
fname=المتصفح.find_element_by_id('fname')
fname.صافي()
fname.Send_keys(شهريار)
lname=المتصفح.find_element_by_id('lname')
lname.صافي()
lname.Send_keys('شوفون')
زر الإرسال=المتصفح.find_element_by_css_selector('input [type =' submit ']')
زر الإرسال.Send_keys(مفاتيح.أدخل)

بمجرد الانتهاء ، احفظ ملف ex09.py نص بايثون.

هنا ، browser.get () الطريقة تفتح صفحة نماذج W3schools HTML في متصفح الويب Firefox.

ال browser.find_element_by_id () طريقة البحث عن حقول الإدخال بواسطة المعرف fname و lname ويقوم بتخزينها في ملف fname و lname المتغيرات ، على التوالي.

ال fname.clear () و lname.clear () طرق مسح الاسم الأول الافتراضي (جون) fname القيمة واسم العائلة (الفلاح) lname قيمة من حقول الإدخال.

ال fname.send_keys () و lname.send_keys () نوع الأساليب شهريار و شوفون في ال الاسم الأول و الكنية حقول الإدخال ، على التوالي.

ال browser.find_element_by_css_selector () طريقة تحديد زر الإرسال من النموذج ويخزنها في زر الإرسال عامل.

ال submitButton.send_keys () طريقة إرسال الضغط على مفتاح الإدخال ( المفاتيح ) إلى زر الإرسال النموذج. هذا الإجراء يرسل النموذج.

قم بتشغيل ex09.py نص Python ، على النحو التالي:

$ python3 ex09.السنة التحضيرية

كما ترى ، تم إرسال النموذج تلقائيًا مع المدخلات الصحيحة.

استنتاج

يجب أن تساعدك هذه المقالة على البدء في اختبار مستعرض السيلينيوم وأتمتة الويب ومكتبات إلغاء الويب في Python 3. لمزيد من المعلومات ، تحقق من وثائق السيلينيوم بايثون الرسمية .