如何在 Protractor 使用 $ 與 $$?
在 Angular 也能使用 $ 與 $$
在 Protractor 官網的 Using Locators,看到了 $
與 $$
兩個 shortcut,但在 Angular 卻無法使用,本文筆記解決方案。
Version
Angular CLI 1.1.2
Angular 4.2.3
Protractor 5.1.2
$ Shortcut
根據 Protractor 官網的 Using Locators:
1 | element(by.css('my-css')); |
可以簡寫為
1 | $('my-css'); |
而
1 | element.all(by.css('.selector')); |
可以簡寫為
1 | $$('.selector') |
標準 Locator 寫法
e2e/app.po.ts
1 | import { browser, by, element } from 'protractor'; |
第 9 行
1 | return element(by.css('app-root h1')).getText(); |
理論上可以改用 $
與 $$
寫法。
使用 $
但改成 $
之後,language service 對 $
提出警告,實際編譯後也出現錯誤。
e2e/app.po.ts
1 | import {$, browser} from 'protractor'; |
第 1 行
1 | import {$, browser} from 'protractor'; |
將 $
import 進來即可。
使用 $$
但改成 $$
之後,language service 對 $$
提出警告,實際編譯後也出現錯誤。
e2e/app.po.ts
1 | import {$$, browser} from 'protractor'; |
第 1 行
1 | import {$$, browser} from 'protractor'; |
將 $
import 進來即可。
Conclusion
$
與$$
寫法可以使 locator 寫法更為簡潔,實務上推薦使用,但記得要將$
與$$
import 進來。
Reference
Protractor, Using Locators
Protractor, Protractor with TypeScript