Skills Plugins MCP Prompt Model 博客 我的中心

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 / 自定义框架)
同一份技能可按不同平台格式导出。
.skill 标准格式,含 system_prompt 与 model_config,导入任意 Agent 框架即可使用 下载
.skillpro 增强格式,额外含脚本 / 工具 / 依赖 / 钩子占位 下载
.json 纯 JSON 导出,只含 system_prompt 与模型参数 下载
Coze 带 frontmatter 的 Markdown,Coze 平台导入用 下载
Dify Dify DSL,创建应用后直接导入 下载

每日精选 Skill 推荐,免费送到你邮箱

输入邮箱,每天接收一个精选 AI Agent 技能推荐。完全免费,持续更新。

验证码 --

提交后我们会发送一封确认邮件,点击邮件里的链接才会开始收信。

完全免费,取消任意时间。我们不会发送垃圾邮件。