it-swarm.dev

كيفية استخدام السيلينيوم مع بيثون؟

كيف أقوم بإعداد السيلينيوم للعمل مع بيثون؟ أريد فقط كتابة/تصدير البرامج النصية في بيثون ، ثم تشغيلها. هل هناك أي موارد من شأنها أن تعلمني كيفية القيام بذلك؟ جربت googling ، لكن الأشياء التي وجدتها كانت إما تشير إلى إصدار قديم من السيلينيوم (RC) ، أو نسخة قديمة من بيثون.

48
Carpetfizz

تقصد السيلينيوم WebDriver؟ هاه ....

متطلب سابق: تثبيت Python بناءً على نظام التشغيل لديك)

تثبيت مع الأمر التالي

pip install -U Selenium

واستخدم هذه الوحدة في شفرتك

from Selenium import webdriver

يمكنك أيضًا استخدام العديد من الإجراءات التالية كما هو مطلوب

from Selenium.webdriver.common.by import By
from Selenium.webdriver.support.ui import Select
from Selenium.common.exceptions import NoSuchElementException

هنا إجابة محدثة

أوصي لك بتشغيل البرنامج النصي دون IDE ... هنا هو النهج الخاص بي

  1. استخدم IDE للعثور على xpath للكائن/العنصر
  2. واستخدم find_element_by_xpath (). انقر ()

مثال أدناه يوضح أتمتة صفحة تسجيل الدخول

#ScriptName : Login.py
#---------------------
from Selenium import webdriver

#Following are optional required
from Selenium.webdriver.common.by import By
from Selenium.webdriver.support.ui import Select
from Selenium.common.exceptions import NoSuchElementException

baseurl = "http://www.mywebsite.com/login.php"
username = "admin"
password = "admin"

xpaths = { 'usernameTxtBox' : "//input[@name='username']",
           'passwordTxtBox' : "//input[@name='password']",
           'submitButton' :   "//input[@name='login']"
         }

mydriver = webdriver.Firefox()
mydriver.get(baseurl)
mydriver.maximize_window()

#Clear Username TextBox if already allowed "Remember Me" 
mydriver.find_element_by_xpath(xpaths['usernameTxtBox']).clear()

#Write Username in Username TextBox
mydriver.find_element_by_xpath(xpaths['usernameTxtBox']).send_keys(username)

#Clear Password TextBox if already allowed "Remember Me" 
mydriver.find_element_by_xpath(xpaths['passwordTxtBox']).clear()

#Write Password in password TextBox
mydriver.find_element_by_xpath(xpaths['passwordTxtBox']).send_keys(password)

#Click Login button
mydriver.find_element_by_xpath(xpaths['submitButton']).click()

هناك طريقة أخرى يمكنك أن تجد xpath لأي كائن -

  1. تثبيت إضافات Firebug و Firepath في فايرفوكس
  2. افتح URL في Firefox
  3. اضغط F12 لفتح مثيل مطور Firepath
  4. حدد Firepath في جزء المتصفح أدناه واختر تحديد بواسطة "xpath"
  5. حرك مؤشر الماوس إلى عنصر في صفحة الويب
  6. في مربع النص xpath ، ستحصل على xpath لكائن/عنصر.
  7. نسخ لصق xpath إلى البرنامج النصي.

النصي تشغيل -

python Login.py

يمكنك أيضًا استخدام محدد CSS بدلاً من xpath. تكون محددات CSS أسرع قليلاً من xpath في معظم الحالات ، وتفضل عادةً على xpath (إذا لم تكن هناك سمة معرّف للعناصر التي تتفاعل معها).

يمكن لـ Firepath أيضًا التقاط محدد موقع الكائن كمحدد CSS إذا قمت بنقل المؤشر إلى الكائن. سيتعين عليك تحديث التعليمات البرمجية الخاصة بك لاستخدام البحث المكافئ بواسطة طريقة اختيار CSS بدلاً من ذلك -

find_element_by_css_selector(css_selector) 
72
Abhishek Kulkarni

هناك الكثير من مصادر السيلينيوم - هنا واحد جيد للاستخدام البسيط السيلينيوم ، وهنا مثال مقتطف أيضًا أمثلة السيلينيوم

يمكنك العثور على الكثير من المصادر الجيدة لاستخدام السيلينيوم ، وليس من الصعب للغاية إعداده والبدء في استخدامه.

7
Serial