Giter VIP home page Giter VIP logo

webdriver-js-extender's Introduction

WebDriver JS Extender

This tools extends Selenium's javascript implementation of the WebDriver API to include additional commands (e.g. commands required for appium).

You can view the full list of commands in lib/index.ts.

Usage

Use WebDriver JS Extender's extend function on your webdriver instance:

  var extendedWebdriver = require('webdriver-js-extender').extend(webdriver);

  extendedWebdriver.setNetworkConnection(5);

webdriver-js-extender's People

Contributors

josephperrott avatar kenany avatar kyliau avatar nicktomlin avatar olivierboudet avatar qiyigg avatar sjelin avatar ventuno avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

webdriver-js-extender's Issues

Stop creating long paths

Environment

  • Windows 10 Pro
  • Angular 12
  • @nguniversal/express-engine

package.json

{
  "name": "client-app",
  "version": "0.0.0",
  "scripts": {
    "ng": "ng",
    "start": "ng serve",
    "build": "ng build",
    "test": "ng test",
    "lint": "ng lint",
    "e2e": "ng e2e",
    "build:ssr_bak": "npm run build:client-and-server-bundles && npm run compile:server",
    "serve:ssr_bak": "node dist/server",
    "build:client-and-server-bundles_bak": "ng build --prod && ng run ClientApp:server:production --bundleDependencies all",
    "compile:server_bak": "webpack --config webpack.server.config.js --progress --colors",
    "dev:ssr": "ng run ClientApp:serve-ssr",
    "serve:ssr": "node dist/server/main.js",
    "build:ssr": "ng build --prod && ng run ClientApp:server:production",
    "prerender": "ng run ClientApp:prerender"
  },
  "private": true,
  "dependencies": {
    "@angular/animations": "~12.0.2",
    "@angular/common": "~12.0.2",
    "@angular/compiler": "~12.0.2",
    "@angular/core": "~12.0.2",
    "@angular/forms": "~12.0.2",
    "@angular/platform-browser": "~12.0.2",
    "@angular/platform-browser-dynamic": "~12.0.2",
    "@angular/platform-server": "~12.0.2",
    "@angular/router": "~12.0.2",
    "@angular/service-worker": "~12.0.2",
    "@mintplayer/ng-json-ld": "^1.0.2",
    "@mintplayer/ng-router": "^1.3.0",
    "@nguniversal/express-engine": "^12.0.1",
    "@ngx-translate/core": "^12.1.2",
    "@ngx-translate/http-loader": "^4.0.0",
    "@types/youtube": "0.0.38",
    "aspnet-prerendering": "^3.0.1",
    "bootstrap": "^4.4.1",
    "caniuse-lite": "^1.0.30001023",
    "express": "^4.15.2",
    "font-awesome": "^4.7.0",
    "guid-typescript": "^1.0.9",
    "ng-click-outside": "^5.3.0",
    "rxjs": "~6.5.5",
    "tslib": "^2.0.0",
    "zone.js": "~0.11.4"
  },
  "devDependencies": {
    "@angular-devkit/build-angular": "~12.0.2",
    "@angular/cli": "~12.0.2",
    "@angular/compiler-cli": "~12.0.2",
    "@angular/language-service": "~12.0.2",
    "@nguniversal/builders": "^9.1.0",
    "@types/express": "^4.17.0",
    "@types/jasmine": "~3.6.0",
    "@types/jasminewd2": "~2.0.3",
    "@types/node": "^12.11.1",
    "codelyzer": "^6.0.0",
    "jasmine-core": "~3.6.0",
    "jasmine-spec-reporter": "~5.0.0",
    "karma": "~5.0.0",
    "karma-chrome-launcher": "~3.1.0",
    "karma-coverage-istanbul-reporter": "~3.0.2",
    "karma-jasmine": "~4.0.0",
    "karma-jasmine-html-reporter": "^1.5.0",
    "protractor": "~7.0.0",
    "ts-loader": "^5.2.0",
    "ts-node": "~7.0.0",
    "tslint": "~6.1.0",
    "typescript": "~4.2.4",
    "webpack-cli": "^3.1.0"
  }
}

Windows by default only supports path lengths up to 260 characters.
Enabling NTFS long paths only enables it for the NTFS-filesystem, so your drive can store files for paths longer than 260 characters.
Windows Explorer does not support the LongPathApi.
Visual Studio does not support the LongPathApi.
VS Code does not support the LongPathApi.
Netbeans does not support the LongPathApi.

I have an ASP.NET Core application with angular frontend using SSR. Publishing fails due to long paths being generated.

Could not copy
C:\Users\piete\source\repos\MintPlayer\MP.Web\ClientApp\node_modules\webdriver-js-extender\built\built\built\built\built\built\built\built\built\built\built\built\built\built\built\built\spec\command_tests\totally_real_apk.apk
to
C:\Users\piete\source\repos\MintPlayer\MP.Web\obj\Release\netcoreapp3.1\PubTmp\Out\ClientApp\node_modules\webdriver-js-extender\built\built\built\built\built\built\built\built\built\built\built\built\built\built\built\built\spec\command_tests\totally_real_apk.apk

Exceeded retry count of 10.

In the past this has been happening with @nguniversal/express-engine too, where the build process generates files at unnecessarily long paths, containing 2 hashes of 100 length, causing the build to fail. This seems to keep recurring...

built\built\built\built\built\built\built\built\built\built\built\built\built\built\built\built

Why would you do such a thing, and keep doing it?

"property 'defineCommand' of undefined" error is appearing on calling apis provided by webdriver-js-extender

In the before annotation, I have written below code

var webdriver = require('selenium-webdriver');

    var extendedWebdriver = require('webdriver-js-extender').extend(webdriver);

    extendedWebdriver.setNetworkConnection(5);

Please see the error mentioned below

Failed: Cannot read property 'defineCommand' of undefined
Stack:
TypeError: Cannot read property 'defineCommand' of undefined
at Extender.defineCommand (/Users/nextgen/nextgen-test-volunteeringMobileApp/node_modules/webdriver-js-extender/lib/extender.ts:33:19)
at CommandDefinition.compile (/Users/nextgen/nextgen-test-volunteeringMobileApp/node_modules/webdriver-js-extender/lib/command_definition.ts:13:16)
at Object.extend (/Users/nextgen/nextgen-test-volunteeringMobileApp/node_modules/webdriver-js-extender/lib/index.ts:65:50)
at Object. (/Users/nextgen/nextgen-test-volunteeringMobileApp/Specs/LoginSpec.js:45:66)
at /usr/local/lib/node_modules/protractor/node_modules/jasminewd2/index.js:110:25
at new ManagedPromise (/usr/local/lib/node_modules/protractor/node_modules/selenium-webdriver/lib/promise.js:1067:7)
at ControlFlow.promise (/usr/local/lib/node_modules/protractor/node_modules/selenium-webdriver/lib/promise.js:2396:12)
at schedulerExecute (/usr/local/lib/node_modules/protractor/node_modules/jasminewd2/index.js:95:18)
at TaskQueue.execute_ (/usr/local/lib/node_modules/protractor/node_modules/selenium-webdriver/lib/promise.js:2970:14)
at TaskQueue.executeNext_ (/usr/local/lib/node_modules/protractor/node_modules/selenium-webdriver/lib/promise.js:2953:27)
From: Task: Run beforeEach in control flow
at Object. (/usr/local/lib/node_modules/protractor/node_modules/jasminewd2/index.js:94:19)
From asynchronous test:
Error
at Suite. (/Users/nextgen/nextgen-test-volunteeringMobileApp/Specs/LoginSpec.js:35:5)
at Object. (/Users/nextgen/nextgen-test-volunteeringMobileApp/Specs/LoginSpec.js:27:1)
at Module._compile (module.js:571:32)
at Object.Module._extensions..js (module.js:580:10)
at Module.load (module.js:488:32)
at tryModuleLoad (module.js:447:12)

Crazy nested `built` directories

I am reporting this on a "code smell" only. While exploring webdriver, chromedriver, and related dependencies for my Angular project's CI needs, I discovered a crazy "Christmas Tree" of nested built directories under my node_modules directory. (See below.) I don't know what causes it, but each built directory appears to contain a single file totally_real_apk.apk with no contents.

Is something going haywire with the webdriver-js-extender build process?

image

This is not causing problems for us as far as I can tell. Thanks for all you do!

protractor 5.1.2 installs two versions of selenium-webdriver because of webdriver-js-extender

  • Node Version: 6.10.2
  • Protractor Version: 5.1.2
  • Angular Version: 4.3.3
  • Operating System and Version Mac OS Sierra (10.12.6)

Protractor has a dependency on webdriver-js-extender@^1.0.0, which has a dependency on selenium-webdriver@^2.53.2. However, Protractor itself installs [email protected].

The end result is that I get two copies of selenium-webdriver in my node_modules folder, at 3.5MB each. This seems excessive and unnecessary.

Consider this issue a request to move webdriver-js-extender to the latest version of selenium-webdriver, which would result in only one copy of it in my node_modules folder.

typo in package.json

Bug: Link from npm fails to find the git hub page

"repository": {
    "type": "git",
    "url": "git://github.com/angular/webdriver-js-entender.git"
  },

I think the url is supposed to be webdriver-js-extender.git

Update selenium-webdriver package version due to security issues

Hi, Team!

First of all, thanks for all that you're doing! Recently I checked my package.json file of small project with Snyk tool. In generated report was issue related to selenium-webdriver package version (see screenshot below). They've already replaced adm-zip with jszip and it fixed this issue. For detailed description of vulnerability please take a look at snyk article. Please update version of selenium-webdriver. I can open a PR for it.
screen shot 2018-06-04 at 12 31 29 pm

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.