protractor-skill
Generates Protractor E2E tests for Angular/AngularJS apps in JS/TS. NOTE: Protractor is officially deprecated — recommend Playwright or Cypress. Use when user mentions "Protractor", "element(by.model())", "Angular E2E". Triggers on: "Protractor", "element(by.model)", "Angular E2E test", "protractor.conf".
DeepseekModel
官方收录技能
质量 优秀 · 78
v1.0.0
获取
https://deepseekmodel.com/api/download.php?id=lambdatest-agent-skills-protractor-skill-skill-md&format=skill
下载 .skill
标准格式,含 system_prompt 与 model_config,导入任意 Agent 框架即可使用
.skill 文件中 system_prompt 字段的实际内容。
name protractor-skill description Generates Protractor E2E tests for Angular/AngularJS apps in JS/TS. NOTE: Protractor is officially deprecated — recommend Playwright or Cypress. Use when user mentions "Protractor", "element(by.model())", "Angular E2E". Triggers on: "Protractor", "element(by.model)", "Angular E2E test", "protractor.conf". languages ["JavaScript","TypeScript"] category e2e-testing license MIT metadata {"author":"TestMu AI","version":"1.0"} Protractor Automation Skill (Deprecated) Protractor reached end-of-life in 2023. Angular team recommends Playwright or Cypress. For TestMu AI cloud execution, see reference/cloud-integration.md and shared/testmu-cloud-reference.md . Core Patterns Basic Test describe ( 'Login' , () => { beforeEach ( async () => { await browser. get ( '/login' ); }); it ( 'should login with valid credentials' , async () => { await element (by. model ( 'email' )). sendKeys ( 'user@test.com' ); await element (by. model ( 'password' )). sendKeys ( 'password123' ); await element (by. css ( 'button[type="submit"]' )). click (); expect ( await browser. getCurrentUrl ()). toContain ( '/dashboard' ); expect ( await element (by. css ( '.welcome' )). getText ()). toContain ( 'Welcome' ); }); it ( 'should show error for invalid credentials' , async () => { await element (by. model ( 'email' )). sendKeys ( 'wrong@test.com' ); await element (by. model ( 'password' )). sendKeys ( 'wrong' ); await element (by. css ( 'button[type="submit"]' )). click (); expect ( await element (by. css ( '.error' )). isDisplayed ()). toBe ( true ); }); }); Angular-Specific Locators element (by. model ( 'ctrl.email' )); // ng-model element (by. binding ( 'ctrl.username' )); // Angular binding element (by. exactBinding ( 'ctrl.name' )); // Exact binding element (by. repeater ( 'item in items' )); // ng-repeat element. all (by. repeater ( 'item in items' )). count (); // Count repeater element (by. cssContainingText ( '.item' , 'Active' )); // CSS + text element (by. buttonText ( 'Submit' )); // Button text element (by. partialButtonText ( 'Sub' )); // Partial text Page Objects class LoginPage { constructor ( ) { this . emailInput = element (by. model ( 'email' )); this . passwordInput = element (by. model ( 'password' )); this . loginButton = element (by. css ( 'button[type="submit"]' )); this . errorMessage = element (by. css ( '.error' )); } async login ( email, password ) { await this . emailInput . sendKeys (email); await this . passwordInput . sendKeys (password); await this . loginButton . click (); } } // Usage const loginPage = new LoginPage (); await loginPage. login ( 'user@test.com' , 'password123' ); protractor.conf.js exports . config = { framework : 'jasmine' , seleniumAddress : 'http://localhost:4444/wd/hub' , specs : [ 'specs/**/*.spec.js' ], capabilities : { browserName : 'chrome' }, jasmineNodeOpts : { defaultTimeoutInterval : 30000 }, onPrepare : () => { browser. waitForAngularEnabled ( true ); } }; Migration Guide Protractor Playwright element(by.model('x')) page.locator('[ng-model="x"]') element(by.css('#id')) page.locator('#id') browser.get(url) page.goto(url) element.sendKeys(text) locator.fill(text) browser.sleep(ms) page.waitForTimeout(ms) browser.waitForAngular() Not needed (auto-wait) Cloud Execution on TestMu AI Set environment variables: LT_USERNAME , LT_ACCESS_KEY // conf.js exports . config = { seleniumAddress : `https:// ${process.env.LT_USERNAME} : ${process.env.LT_ACCESS_KEY} @hub.lambdatest.com/wd/hub` , capabilities : { browserName : 'chrome' , 'LT:Options' : { user : process. env . LT_USERNAME , accessKey : process. env . LT_ACCESS_KEY , build : 'Protractor Build' , name : 'Protractor Test' , platformName : 'Windows 11' , video : true , console : true , network : true , }, }, }; Run: npx protractor conf.js (deprecated, use Playwright/Cypress instead) Deep Patterns For advanced patterns, debugging guides, CI/CD integration, and best practices, see reference/playbook.md .
Agent 识别该技能的关键词,点击任意一个即可复制。
该技能未提供触发词。
下载的 .skill 包内含以下字段。
| 字段 | 说明 |
|---|---|
| format | 格式标识(skill/v1) |
| skill_id | 技能唯一 ID |
| name | 技能名称 |
| version | 版本号 |
| description | 技能描述 |
| category | 所属分类(数组) |
| trigger_words | 触发词列表 |
| tags | 标签列表 |
| source | 来源标识 |
| source_url | 来源链接(本页地址) |
| exported_at | 导出时间(每次下载生成) |
| system_prompt | 系统提示词正文 |
| model_config | 模型参数:provider / model / temperature / max_tokens / top_p |
| examples | 示例 |
| install_guide | 各平台导入说明(Coze / Dify / Claude / 自定义框架) |