$
O comando $
é uma forma curta e prática para buscar um único elemento na página.
Você também pode passar um objeto como seletor onde o objeto contém uma propriedade element-6066-11e4-a52e-4f735466cecf
com o valor de uma referência a um elemento. O comando então transformará a referência em um elemento WebdriverIO estendido.
Nota: encadear comandos $
e $$
só faz sentido quando você usa múltiplas estratégias de seletor. Caso contrário,
você fará solicitações desnecessárias que tornarão o teste mais lento (por exemplo, $('body').$('div')
irá disparar duas solicitações enquanto
$('body div')
faz literalmente a mesma coisa com apenas uma solicitação)
Nota: use esses objetos de elemento apenas se você tiver certeza de que eles ainda existem na
página, por exemplo, usando o comando isExisting
. O WebdriverIO não consegue buscá-los novamente
já que não há informações de seletor disponíveis.
Usando o testrunner wdio, este comando é uma variável global, veja Globals
para mais informações. Usando WebdriverIO em um script standalone,
ele estará localizado no objeto do navegador (por exemplo, browser.$$
).
Você pode encadear $
ou $$
juntos sem envolver comandos individuais em await
para
percorrer a árvore DOM, por exemplo:
const imageSrc = await $$('div')[1].nextElement().$$('img')[2].getAttribute('src')
Para mais informações sobre como selecionar elementos específicos, confira o guia Selectors.
Uso
browser.$(selector)
Parâmetros
Nome | Tipo | Detalhes |
---|---|---|
selector | String, Function, Matcher | seletor, Função JS ou objeto Matcher para buscar um determinado elemento |
Exemplos
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();
});
Retorna
- <WebdriverIO.Element>