$
El comando $
es una forma corta y práctica para recuperar un solo elemento en la página.
A diferencia del $
adjunto al objeto browser
este comando consulta un elemento basado en un elemento raíz.
También puedes pasar un objeto como selector donde el objeto contiene una propiedad element-6066-11e4-a52e-4f735466cecf
con el valor de una referencia a un elemento. El comando transformará la referencia a un elemento WebdriverIO extendido.
Nota: encadenar comandos $
y $$
solo tiene sentido cuando usas múltiples estrategias de selector. De lo contrario,
realizarás solicitudes innecesarias que ralentizarán la prueba (por ejemplo, $('body').$('div')
activará dos solicitudes mientras que
$('body div')
hace literalmente lo mismo con solo una solicitud)
Puedes encadenar $
o $$
juntos sin envolver comandos individuales en await
para
navegar por el árbol DOM, por ejemplo:
const imageSrc = await $$('div')[1].nextElement().$$('img')[2].getAttribute('src')
WebdriverIO atraviesa perfectamente las shadow roots cuando utiliza los comandos $
o $$
, independientemente del nivel de anidamiento o
modo de shadow root, por ejemplo:
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()
Para más información sobre cómo seleccionar elementos específicos, consulta la guía de Selectores.
Uso
$(selector).$(selector)
Parámetros
Nombre | Tipo | Detalles |
---|---|---|
selector | String, Function, Matcher | selector, Función JS, o objeto Matcher para buscar un determinado elemento |
Ejemplos
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();
});
Devuelve
- <WebdriverIO.Element>