$
الأمر $
هو طريقة مختصرة ومفيدة لجلب عنصر واحد في الصفحة.
على عكس $
المرتبط بـ كائن المتصفح،
يقوم هذا الأمر بالاستعلام عن عنصر استنادًا إلى عنصر جذر.
يمكنك أيضًا تمرير كائن كمحدد حيث يحتوي الكائن على خاصية element-6066-11e4-a52e-4f735466cecf
مع قيمة إشارة إلى عنصر. سيقوم الأمر بعد ذلك بتحويل الإشارة إلى عنصر WebdriverIO موسع.
ملاحظة: ربط أوامر $
و $$
له معنى فقط عند استخدام استراتيجيات محدد متعددة. وإلا فإنك ستقوم
بطلبات غير ضرورية تبطئ الاختبار (مثلاً: $('body').$('div')
سيؤدي إلى طلبين بينما
$('body div')
يفعل نفس الشيء بطلب واحد فقط)
يمكنك ربط $
أو $$
معًا دون تغليف الأوامر الفردية في await
من أجل
التنقل في شجرة DOM، على سبيل المثال:
const imageSrc = await $$('div')[1].nextElement().$$('img')[2].getAttribute('src')
يتنقل WebdriverIO بسلاسة عبر جذور الظل عند استخدام أوامر $
أو $$
، بغض النظر عن مستوى التداخل أو
وضع جذر الظل، على سبيل المثال:
await browser.url('https://ionicframework.com/docs/usage/v8/datetime/basic/demo.html?ionic:mode=md')
await browser.$('button[aria-label="Sunday, August 4"]').click()
await browser.$('.aux-input').getValue()
لمزيد من المعلومات حول كيفي ة تحديد عناصر معينة، راجع دليل المحددات.
الاستخدام
$(selector).$(selector)
المعلمات
الاسم | النوع | التفاصيل |
---|---|---|
selector | String, Function, Matcher | المحدد، دالة JS، أو كائن مطابقة لجلب عنصر معين |
أمثلة
loading...
loading...
loading...
loading...
it('should use Androids DataMatcher or ViewMatcher selector', async () => {
const menuItem = await $({
"name": "hasEntry",
"args": ["title", "ViewTitle"],
"class": "androidx.test.espresso.matcher.ViewMatchers"
});
await menuItem.click();
const menuItem = await $({
"name": "hasEntry",
"args": ["title", "ViewTitle"]
});
await menuItem.click();
});
القيمة المرجعة
- <WebdriverIO.Element>