$
دستور $
یک روش کوتاه و مفید برای دریافت یک عنصر خاص در صفحه است.
برخلاف $
که به شیء مرورگر متصل شده است،
این دستور عناصر را بر اساس یک عنصر ریشه پرس و جو میکند.
همچنین میتوانید یک شیء را به عنوان انتخابگر ارسال کنید که در آن شیء دارای ویژگی 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، یا شیء Matcher برای دریافت یک عنصر خاص |
مثالها
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>