$
Kommandot $
är ett kort och behändigt sätt att hämta ett enskilt element på sidan.
Du kan också skicka in ett objekt som väljare där objektet innehåller en egenskap element-6066-11e4-a52e-4f735466cecf
med värdet av en referens till ett element. Kommandot kommer då att omvandla referensen till ett utökat WebdriverIO-element.
Observera: att kedja $
och $$
kommandon är bara meningsfullt när du använder flera väljarstrategier. Du kommer annars
göra onödiga förfrågningar som saktar ner testet (t.ex. $('body').$('div')
kommer att utlösa två förfrågningar medan
$('body div')
gör bokstavligen samma sak med bara en förfrågan)
Observera: använd endast dessa elementobjekt om du är säker på att de fortfarande existerar på
sidan, t.ex. genom att använda kommandot isExisting
. WebdriverIO kan inte hämta dem igen eftersom
det inte finns någon väljarinformation tillgänglig.
När du använder wdio testrunner är detta kommando en global variabel, se Globals
för mer information. När du använder WebdriverIO inom ett fristående
skript kommer det att finnas på webbläsarobjektet istället (t.ex. browser.$$
).
Du kan kedja $
eller $$
tillsammans utan att packa enskilda kommandon i await
för att
gå nedåt i DOM-trädet, t.ex.:
const imageSrc = await $$('div')[1].nextElement().$$('img')[2].getAttribute('src')
För mer information om hur du väljer specifika element, kolla in guiden Selectors.
Användning
browser.$(selector)
Parametrar
Namn | Typ | Detaljer |
---|---|---|
selector | String, Function, Matcher | väljare, JS-funktion, eller Matcher-objekt för att hämta ett visst element |
Exempel
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();
});
Returnerar
- <WebdriverIO.Element>