$
Polecenie $
to krótki i wygodny sposób pobierania pojedynczego elementu na stronie.
Możesz również przekazać obiekt jako selektor, gdzie obiekt zawiera właściwość element-6066-11e4-a52e-4f735466cecf
z wartością referencji do elementu. Polecenie przekształci wtedy referencję w rozszerzony element WebdriverIO.
Uwaga: łączenie poleceń $
i $$
ma sens tylko wtedy, gdy używasz wielu strategii selektorów. W przeciwnym razie
wykonasz niepotrzebne żądania, które spowolnią test (np. $('body').$('div')
wywoła dwa żądania, podczas gdy
$('body div')
robi dokładnie to samo z tylko jednym żądaniem)
Uwaga: używaj tych obiektów elementów tylko wtedy, gdy masz pewność, że nadal istnieją na
stronie, np. używając polecenia isExisting
. WebdriverIO nie może ich ponownie pobrać, ponieważ
nie są dostępne informacje o selektorze.
Korzystając z testrunner wdio, to polecenie jest zmienną globalną, zobacz Globals
aby uzyskać więcej informacji. Używając WebdriverIO w samodzielnym
skrypcie będzie ono umieszczone na obiekcie przeglądarki (np. browser.$$
).
Możesz łączyć $
lub $$
razem bez opakowywania poszczególnych poleceń w await
w celu
poruszania się po drzewie DOM, np.:
const imageSrc = await $$('div')[1].nextElement().$$('img')[2].getAttribute('src')
Aby uzyskać więcej informacji o tym, jak wybierać określone elementy, sprawdź przewodnik Selektory.
Użycie
browser.$(selector)
Parametry
Nazwa | Typ | Szczegóły |
---|---|---|
selector | String, Function, Matcher | selektor, funkcja JS lub obiekt Matcher do pobrania określonego elementu |
Przykłady
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();
});
Zwraca
- <WebdriverIO.Element>