$
Il comando $
è un modo breve e pratico per recuperare un singolo elemento nella pagina.
A differenza del $
collegato all'oggetto browser,
questo comando interroga un elemento basandosi su un elemento radice.
Puoi anche passare un oggetto come selettore dove l'oggetto contiene una proprietà element-6066-11e4-a52e-4f735466cecf
con il valore di un riferimento a un elemento. Il comando trasformerà quindi il riferimento in un elemento WebdriverIO esteso.
Nota: concatenare i comandi $
e $$
ha senso solo quando utilizzi più strategie di selezione. Altrimenti
farai richieste non necessarie che rallentano il test (ad esempio, $('body').$('div')
attiverà due richieste mentre
$('body div')
fa letteralmente la stessa cosa con una sola richiesta)
Puoi concatenare $
o $$
insieme senza avvolgere i singoli comandi in await
per
navigare nell'albero DOM, ad esempio:
const imageSrc = await $$('div')[1].nextElement().$$('img')[2].getAttribute('src')
WebdriverIO attraversa senza problemi le shadow root quando si utilizzano i comandi $
o $$
, indipendentemente dal livello di annidamento o
dalla modalità shadow root, per esempio:
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()
Per ulteriori informazioni su come selezionare elementi specifici, consulta la guida Selettori.
Utilizzo
$(selector).$(selector)
Parametri
Nome | Tipo | Dettagli |
---|---|---|
selector | String, Function, Matcher | selettore, funzione JS o oggetto Matcher per recuperare un determinato elemento |
Esempi
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();
});
Restituisce
- <WebdriverIO.Element>