כיצד למצוא אלמנט לפי טקסט עם סלניום

How Find Element Text With Selenium



איתור ובחירת רכיבים מדף האינטרנט הוא המפתח לגרידת אתרים באמצעות סלניום. אתה יכול לבחור רכיבים באמצעות שם תג, מזהה, שם מחלקה, בורר XPath, בורר CSS וכו 'בסלניום. תוכל גם לבחור רכיבים שיש להם טקסט ספציפי עם סלניום. זה מועיל לבחירת קישורים ולחצנים מדף האינטרנט בקלות. גם אם מבנה הדף משתנה, כל עוד הטקסט של רכיב דף האינטרנט נשאר זהה, הבורר שלך אמור לעבוד בסדר גמור. זהו היתרון בבחירת קישורים וכפתורים באמצעות טקסט בסלניום.

במאמר זה, אני הולך להראות לך כיצד לאתר ולבחור אלמנטים מדפי אינטרנט באמצעות טקסט בסלניום בעזרת ספריית פייתון סלניום. אז בואו נתחיל.







דרישות מוקדמות:

כדי לנסות את הפקודות והדוגמאות של מאמר זה, עליך להיות בעל:



  1. הפצת לינוקס (רצוי אובונטו) המותקנת במחשב שלך.
  2. Python 3 מותקן במחשב שלך.
  3. PIP 3 מותקן במחשב שלך.
  4. פִּיתוֹן וירטואלי החבילה המותקנת במחשב שלך.
  5. דפדפני אינטרנט של Mozilla Firefox או Google Chrome המותקנים במחשב שלך.
  6. חייב לדעת להתקין את מנהל ההתקן Gecko של Firefox או את מנהל ההתקן של Chrome.

לעמידה בדרישות 4, 5 ו -6, קרא את המאמר שלי מבוא לסלניום בפייתון 3 .



אתה יכול למצוא מאמרים רבים בנושאים אחרים בנושא LinuxHint.com . הקפד לבדוק אותם אם אתה זקוק לעזרה כלשהי.





הגדרת מדריך פרויקטים:

כדי לשמור על הכל מאורגן, צור ספריית פרוייקטים חדשה סלניום-טקסט-בחר/ כדלהלן:

$mkdir -pvסלניום-טקסט-בחר/נהגים



נווט אל סלניום-טקסט-בחר/ ספריית הפרויקטים כדלקמן:

$CDסלניום-טקסט-בחר/

צור סביבה וירטואלית של פייתון בספריית הפרויקטים כדלקמן:

$virtualenv .venv

הפעל את הסביבה הווירטואלית כדלקמן:

$מָקוֹר.venv/אני/לְהַפְעִיל

התקן את ספריית סלניום פייתון באמצעות PIP3 כדלקמן:

$ pip3 להתקין סלניום

הורד והתקן את כל מנהל ההתקן הנדרש ב- נהגים/ מדריך הפרויקט. הסברתי את תהליך ההורדה וההתקנה של מנהלי התקני אינטרנט במאמר שלי מבוא לסלניום בפייתון 3 .

מציאת יסודות לפי טקסט:

בחלק זה, אני הולך להראות לך כמה דוגמאות למציאת ובחירת אלמנטים של דפי אינטרנט לפי טקסט באמצעות ספריית סלניום פייתון.

אני אתחיל בדוגמה הפשוטה ביותר לבחירת רכיבי דף אינטרנט לפי טקסט, בחירת קישורים מדף האינטרנט.

בדף ההתחברות של facebook.com יש לנו קישור חשבון שכחת? כפי שאתה יכול לראות בצילום המסך למטה. בואו לבחור את הקישור הזה עם סלניום.

צור סקריפט פייתון חדש ex01.py והקלד בו את שורות הקודים הבאות.

מסֵלֶנִיוּםיְבוּאמנהל התקן אינטרנט
מסֵלֶנִיוּם.מנהל התקן אינטרנט.מְשׁוּתָף.מפתחות יְבוּאמפתחות
מסֵלֶנִיוּם.מנהל התקן אינטרנט.מְשׁוּתָף.על ידי יְבוּאעל ידי
מ זְמַן יְבוּאלִישׁוֹן
דפדפן=מנהל התקן אינטרנט.כרום(_path הפעלה='./drivers/chromedriver')
דפדפן.לקבל('https://www.facebook.com/')
שכח את חשבון הקישור=דפדפן.מצא_אלמנט(על ידי.XPATH, '
//*[text () = 'חשבון שכחת?'] '
)
שכח את חשבון הקישור.מפתחות שליחה(מפתחות.להיכנס)

לאחר שתסיים, שמור את ex01.py סקריפט פייתון.

שורה 1-4 מייבאת את כל הרכיבים הנדרשים לתוכנית Python.

שורה 6 יוצרת Chrome דפדפן אובייקט באמצעות נהג כרום בינארי מה נהגים/ מדריך הפרויקט.

שורה 8 אומרת לדפדפן לטעון את האתר facebook.com.

שורה 10 מוצאת את הקישור שיש בו את הטקסט חשבון שכחת? שימוש בורר XPath. לשם כך השתמשתי בבורר XPath //*[text () = 'חשבון שכחת?'] .

בורר XPath מתחיל ב- //, מה שאומר שהאלמנט יכול להיות בכל מקום בדף. ה * הסמל אומר לסלניום לבחור כל תג ( ל אוֹ עמ אוֹ לְהַקִיף, וכו ') התואם את המצב בתוך הסוגריים המרובעים [] . כאן, התנאי הוא, טקסט האלמנט שווה ל- חשבון שכחת?

ה טֶקסט() הפונקציה XPath משמשת לקבלת טקסט של אלמנט.

לדוגמה, טֶקסט() החזרות שלום עולם אם הוא בוחר את רכיב ה- HTML הבא.

< ל href='http://dummysite.com'>שלום עולם</ ל >

קו 11 שולח את הקשה על המקש חשבון שכחת? קישור.

הפעל את סקריפט Python ex01.py עם הפקודה הבאה:

$ python ex01.py

כפי שאתה יכול לראות, דפדפן האינטרנט מוצא, בוחר ולוחץ על המפתח על חשבון שכחת? קישור.

ה חשבון שכחת? הקישור מעביר את הדפדפן לדף הבא.

באותו אופן, תוכל לחפש בקלות אלמנטים בעלי ערך התכונה הרצוי.

הנה ה התחברות כפתור הוא קֶלֶט אלמנט בעל ה ערך תְכוּנָה התחברות . בואו נראה כיצד לבחור רכיב זה לפי טקסט.

צור סקריפט פייתון חדש ex02.py והקלד בו את שורות הקודים הבאות.

מסֵלֶנִיוּםיְבוּאמנהל התקן אינטרנט
מסֵלֶנִיוּם.מנהל התקן אינטרנט.מְשׁוּתָף.מפתחות יְבוּאמפתחות
מסֵלֶנִיוּם.מנהל התקן אינטרנט.מְשׁוּתָף.על ידי יְבוּאעל ידי
מ זְמַן יְבוּאלִישׁוֹן
דפדפן=מנהל התקן אינטרנט.כרום(_path הפעלה='./drivers/chromedriver')
דפדפן.לקבל('https://www.facebook.com/')
לִישׁוֹן(5)
emailInput=דפדפן.מצא_אלמנט(על ידי.XPATH, '// input [@id =' email ']')
passwordInput=דפדפן.מצא_אלמנט(על ידי.XPATH, '// input [@id =' pass ']')
כפתור התחברות=דפדפן.מצא_אלמנט(על ידי.XPATH, '//*[@value =' כניסה ']')
emailInput.מפתחות שליחה('[מוגן בדוא'ל]')
לִישׁוֹן(5)
passwordInput.מפתחות שליחה('מעבר סודי')
לִישׁוֹן(5)
כפתור התחברות.מפתחות שליחה(מפתחות.להיכנס)

לאחר שתסיים, שמור את ex02.py סקריפט פייתון.

שורה 1-4 מייבאת את כל הרכיבים הנדרשים.

שורה 6 יוצרת Chrome דפדפן אובייקט באמצעות נהג כרום בינארי מה נהגים/ מדריך הפרויקט.

שורה 8 אומרת לדפדפן לטעון את האתר facebook.com.

הכל קורה כל כך מהר ברגע שאתה מריץ את התסריט. אז, השתמשתי ב- לִישׁוֹן() לתפקד הרבה פעמים ב ex02.py לעיכוב פקודות הדפדפן. כך תוכלו לצפות כיצד הכל עובד.

שורה 11 מוצאת את תיבת הטקסט של קלט הדוא'ל ושומרת הפניה של האלמנט ב- emailInput מִשְׁתַנֶה.

שורה 12 מוצאת את תיבת הטקסט של קלט הדוא'ל ושומרת הפניה של האלמנט ב- emailInput מִשְׁתַנֶה.

שורה 13 מוצאת את רכיב הקלט בעל התכונה ערך שֶׁל התחברות באמצעות בורר XPath. לשם כך השתמשתי בבורר XPath //*[@value = 'כניסה'] .

בורר XPath מתחיל ב- // . זה אומר שהאלמנט יכול להיות בכל מקום בדף. ה * הסמל אומר לסלניום לבחור כל תג ( קֶלֶט אוֹ עמ אוֹ לְהַקִיף, וכו ') התואם את המצב בתוך הסוגריים המרובעים [] . כאן, התנאי הוא, תכונת האלמנט ערך שווה ל התחברות .

שורה 15 שולחת את הקלט[מוגן בדוא'ל]לתיבת הטקסט של קלט הדוא'ל, ושורה 16 ​​מעכבת את הפעולה הבאה.

שורה 18 שולחת את הכניסה הסודית לקלט לתיבת הטקסט להזנת סיסמה, ושורה 19 מעכבת את הפעולה הבאה.

קו 21 שולח את הקשה על מקש כפתור ההתחברות.

הפעל את ex02.py סקריפט פייתון עם הפקודה הבאה:

$ python3 ex02.py

כפי שאתה יכול לראות, תיבות הטקסט של הדוא'ל והסיסמה מלאות בערכי הדמה שלנו וב התחברות הכפתור נלחץ.

לאחר מכן הדף מנווט לדף הבא.

מציאת יסודות לפי טקסט חלקי:

בחלק הקודם, הראיתי לך כיצד למצוא אלמנטים לפי טקסט ספציפי. בחלק זה, אני הולך להראות לך כיצד למצוא אלמנטים מדפי אינטרנט באמצעות טקסט חלקי.

בדוגמה, ex01.py , חיפשתי את רכיב הקישור שיש בו את הטקסט חשבון שכחת? . ניתן לחפש באותו רכיב קישור באמצעות טקסט חלקי כגון נשכח ע'פ . לשם כך, תוכל להשתמש ב- מכיל () פונקציית XPath, כפי שמוצג בשורה 10 של ex03.py . שאר הקודים זהים ל- ex01.py . התוצאות יהיו זהות.

בשורה 10 מתוך ex03.py , תנאי הבחירה השתמשו ב- מכיל (מקור, טקסט) פונקציית XPath. פונקציה זו לוקחת 2 ארגומנטים, מָקוֹר, ו טֶקסט .

ה מכיל () הפונקציה בודקת אם טֶקסט שניתן בטיעון השני תואם חלקית את מָקוֹר ערך בטיעון הראשון.

המקור יכול להיות הטקסט של האלמנט ( טֶקסט() ) או ערך התכונה של האלמנט ( @attr_name ).

ב ex03.py , הטקסט של האלמנט מסומן.

פונקציה שימושית נוספת של XPath לאיתור אלמנטים מדף האינטרנט באמצעות טקסט חלקי היא מתחיל עם (מקור, טקסט) . לפונקציה זו יש אותם טיעונים כמו מכיל () מתפקדים ומשתמשים בו באותו אופן. ההבדל היחיד הוא ש מתחיל עם() פונקציה בודקת אם הארגומנט השני טֶקסט היא המחרוזת ההתחלתית של הטיעון הראשון מָקוֹר .

כתבתי מחדש את הדוגמא ex03.py כדי לחפש את האלמנט שעבורו מתחיל הטקסט ישכח, כפי שאתה יכול לראות בשורה 10 של ex04.py . התוצאה זהה ל ex02 ו ex03.py .

גם אני כתבתי מחדש ex02.py כך שהוא יחפש את רכיב הקלט שעבורו ערך התכונה מתחילה ב- עֵץ, כפי שאתה יכול לראות בשורה 13 של ex05.py . התוצאה זהה ל ex02.py .

סיכום:

במאמר זה, הראיתי לך כיצד למצוא ולבחור אלמנטים מדפי אינטרנט לפי טקסט באמצעות ספריית סלניום פייתון. כעת, אתה אמור להיות מסוגל למצוא אלמנטים מדפי אינטרנט לפי טקסט ספציפי או טקסט חלקי בעזרת ספריית סלניום פייתון.