عنصر DOM حاوی متن را دریافت کنید. عناصر DOM می توانند حاوی بیش از متن مورد نظر باشند و هنوز هم مطابقت داشته باشند. علاوه بر این ، سرو برخی از عناصر DOM را بر روی عمیق ترین عنصر موجود ترجیح می دهد.
نحو
استفاده
استدلال
محتوا (رشته ، شماره ، regexp)
عنصر DOM حاوی محتوا را دریافت کنید.
انتخاب کننده (انتخاب کننده رشته)
یک انتخاب کننده را برای فیلتر کردن عناصر DOM حاوی متن مشخص کنید. Cypress ترتیب اولویت پیش فرض خود را برای انتخاب مشخص شده نادیده می گیرد. استفاده از یک انتخاب کننده به شما امکان می دهد عناصر کم عمق بیشتری (بالاتر در درخت) که حاوی متن خاص است ، برگردانید.
گزینه ها (شی)
برای تغییر رفتار پیش فرض .contains () در یک شی گزینه عبور کنید.
| گزینه | پیش فرض | شرح |
| حکایت | درست است، واقعی | حساسیت مورد را بررسی کنید |
| ورود به سیستم | درست است، واقعی | دستور را در پرونده فرمان نمایش می دهد |
| مدت زمان طولانی | DefaultCommandTimeout | زمان انتظار برای حل و فصل () برای حل قبل از زمان بندی |
| از جمله | شامل مقدار گزینه پیکربندی shadowdom | این که آیا مرزهای دامنه سایه را طی می کند و عناصر موجود در DOM Shadow را در نتایج حاصل از آن قرار می دهد. |
بازده - محصول
- .contains () عنصر DOM جدیدی را که پیدا کرده است به دست می آورد.
- .contains () یک پرس و جو است و برای زنجیره ای دستورات بیشتر ایمن است.
مثال ها
محتوا
اولین عنصر حاوی متن را پیدا کنید
ورودی [نوع = 'ارسال'] را بر اساس مقدار پیدا کنید
عنصر فرم را دریافت کنید و در فرزندان خود برای محتوا "ارسال فرم!" جستجو کنید.
عدد
اولین عنصر حاوی یک عدد را پیدا کنید
حتی اگر عمیق ترین عنصر حاوی "4" باشد ، Cypress به دلیل ترتیب عنصر مورد نظر خود ، به طور خودکار عناصر را بر روی دهانه ها به دست می آورد.
عبارت منظم
اولین عنصر را با متن مطابق با بیان منظم پیدا کنید
انتخاب کننده
یک انتخاب کننده را برای بازگشت یک عنصر خاص مشخص کنید
- ، و اول در مثال زیر همه حاوی "سیب" است.
برای غلبه بر عنصری که به دست می آید می توانیم به عنوان انتخاب کننده "UL" را منتقل کنیم.
فرم را به عنوان موضوع نگه دارید
در اینجا مثالی وجود دارد که از انتخاب کننده استفاده می کند تا اطمینان حاصل شود که موضوع برای زنجیرهای آینده باقی مانده است.
بدون انتخاب صریح ، موضوع تغییر می کند. با استفاده از انتخاب صریح تضمین می کند که دستورات زنجیر شده موضوع را به عنوان موضوع داشته باشند.
حساسیت مورد
در اینجا مثالی با استفاده از گزینه MatchCase برای نادیده گرفتن حساسیت مورد آورده شده است.
یادداشت
دامنه
.contains () متفاوت عمل می کند ، خواه یک سری دستورات را شروع کند یا از یک سری موجود زنجیر شود.
هنگام شروع یک سری دستورات:
این کل سند را برای محتوا پرس و جو می کند.
هنگامی که به یک سری دستورات موجود زنجیر می شود
این در داخل عنصر پرس و جو خواهد شد.
از زنجیرهای چندگانه محتاط باشید
بیایید یک سناریو را تصور کنیم که برای حذف یک کاربر روی یک دکمه کلیک می کنید و یک گفتگو ظاهر می شود و از شما می خواهد این حذف را تأیید کنید.
از آنجا که دومین . کنه () از یک فرمان که به دست می آورد ، زنجیر می شود ، سرو برای محتوای جدید به دنبال آن خواهد بود.
به عبارت دیگر ، Cypress برای محتوا به داخل "کاربر حذف" می پردازد: "بله ، حذف!" ، این چیزی نیست که ما در نظر داشتیم.
کاری که شما می خواهید انجام دهید این است که مجدداً با CY تماس بگیرید ، که به طور خودکار زنجیره ای جدید را ایجاد می کند که به این سند تبدیل شده است.
مکان های سفید ، دنباله دار ، کپی ، در برچسب نادیده گرفته نمی شوند
برخلاف برچسب های دیگر ، همانطور که در زیر آمده است ، از پیشرو ، دنباله دار یا کپی های سفیدی که در زیر آمده است ، نادیده نمی گیرد:

برای بازتاب این رفتار ، سرو نیز آنها را نادیده نمی گیرد.
فضای غیرقانونی
برای مطابقت با متن در HTML می توانید از یک شخصیت فضایی در cy.contains () استفاده کنید که از یک نهاد فضایی غیر شکن و ampnbsp استفاده می کند. بشر
نکته: درباره ادعاهای علیه متنی با اشخاص فضایی غیر شکن بخوانید که چگونه می توانم محتوای متن یک عنصر را دریافت کنم؟
یک عنصر
فقط اولین عنصر همسان بازگردانده می شود
اگر می خواهید به جای آن انتخاب کنید ، می توانید عناصر حاصل از .contains () را محدود کنید.
برچسب های پیش فرض
هنگامی که ویژگی مقدار از AN حذف می شود ، از برچسب پیش فرض استفاده می شود و می تواند وابسته به محلی باشد. اطلاعات بیشتر در MDN.
هنگامی که این اتفاق می افتد ، مقدار یک رشته خالی است و هیچ روش برنامه ای برای Cypress وجود ندارد تا عناصر را با برچسب نمایش داده شده توسط عامل کاربر فیلتر کند. این می تواند هنگام استفاده از cy.contains () با دکمه های ارسال ، باعث خرابی های غیر منتظره شود.
راه حل در این مورد این است که:
اولویت ها
ترتیب اولویت عنصر
. کنه () پیش فرض برای ترجیح عناصر بالاتر در درخت در صورت وجود:
- ورودی [نوع = 'ارسال']
- دکمه
- a
- برچسب
اگر یک آرگومان انتخاب کننده را به .contains () منتقل کنید ، سرو این دستور اولویت عنصر را نادیده می گیرد.
طرفداری از سایر عناصر عمیق تر
حتی اگر عمیق ترین عنصر حاوی "جستجو" باشد ، Cypress عناصر را بیش از دهانه ها به دست می آورد.
طرفداری از سایر عناصر عمیق تر
حتی اگر عمیق ترین عنصر حاوی "ورود به سیستم" باشد ، Cypress عناصر لنگر را بر روی دهانه ها بازده می دهد.
طرفداری از سایر عناصر عمیق تر
حتی اگر عمیق ترین عنصر حاوی "سن" باشد ، Cypress عناصر را به دست می آورد.
قاعده
الزامات
- کانتینرها () می توانند از CY یا خاموش یک فرمان که به عنوان عنصر (های) DOM () را به دست می آورد ، زنجیر شود.
ادعاها
- . کنه () به طور خودکار دوباره امتحان می شود تا زمانی که عنصر (ها) در DOM وجود داشته باشند
- کانتینز () به طور خودکار دوباره امتحان می شود تا تمام ادعاهای زنجیره ای تصویب شود
تایم
- کانتی ها () می توانند در انتظار وجود عنصر (ها) در DOM باشند.
- .contains () می تواند منتظر ادعاهایی باشد که به آنها اضافه شده است.
پرونده فرمان
عنصر شامل متن "کاربر جدید" است
دستورات بالا در پرونده فرمان به صورت نمایش داده می شود:

هنگام کلیک بر روی دستور موجود در ورود به سیستم فرمان ، کنسول موارد زیر را تهیه می کند:
فارکس بازار مدرن...
ما را در سایت فارکس بازار مدرن دنبال می کنید
برچسب :
نویسنده : امین زندگانی
بازدید : <-PostHit->
تاريخ : پنجشنبه
4 خرداد
1402 ساعت: 16:27