$
Komenda $
to szybki i wygodny sposób na pobranie pojedynczego elementu na stronie.
W przeciwieństwie do $
dołączonego do obiektu przeglądarki,
ta komenda wyszukuje element w oparciu o element główny.
Możesz również przekazać obiekt jako selektor, gdzie obiekt zawiera właściwość element-6066-11e4-a52e-4f735466cecf
z wartością odniesienia do elementu. Komenda przekształci wtedy to odniesienie w rozszerzony element WebdriverIO.
Uwaga: łączenie komend $
i $$
ma sens tylko wtedy, gdy używasz wielu strategii selektorów. W przeciwnym razie
będziesz wykonywać niepotrzebne żądania, które spowalniają test (np. $('body').$('div')
wywoła dwa żądania, podczas gdy
$('body div')
robi dokładnie to samo za pomocą tylko jednego żądania)
Możesz łączyć $
lub $$
bez opakowywania poszczególnych komend w await
, aby
poruszać się po drzewie DOM, np.:
const imageSrc = await $$('div')[1].nextElement().$$('img')[2].getAttribute('src')
WebdriverIO płynnie przechodzi przez shadow DOM podczas używania komend $
lub $$
, niezależnie od poziomu zagnieżdżenia lub
trybu shadow root, na przykład:
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()
Aby uzyskać więcej informacji na temat wybierania określonych elementów, sprawdź przewodnik Selektory.
Użycie
$(selector).$(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>