GithubHelp home page GithubHelp logo

sts0mrg0 / pychrome Goto Github PK

View Code? Open in Web Editor NEW

This project forked from siversalih/pychrome-web-automation

0.0 1.0 0.0 48.77 MB

Web Automation Module based on Selenium Python

Home Page: https://pychrome.wordpress.com/

Python 64.73% HTML 35.27%

pychrome's Introduction

PyChrome

PyChrome is a Web Automation module to create Web Automation application using Selenium with Python. It is integrated with WebDriver using ChromeDriver to access and control Chromium browser. It can also emulate headless browser using PhantomJS (Ghost Driver) to browse unnoticeable. PyChrome is open-source and it is written in Python 2. It’s run via command-line rather than as GUI editor application. Thus, it is more flexible to be modified at user's discretion, and it can be easily imported as a module to any project for creating Web Automation application in Python programming language. The application of using PyChrome (Selenium Python) is tremendous for Web applications. It can be used for Web automation, creating Web bots, data mining, scraping the web, browse unnoticeably using Headless browser, and testing web application.

Currently, the project is in development phase. Be sure to check the website at pychrome.wordpress.com for the latest update.

To setup Selenium Python environment, check installation tutorial for macOS or Windows.

For tutorial on how to use PyChrome module in your project, see these videos.

Checkout PyChrome

$ git clone https://github.com/siversalih/pyChrome.git

The Files

alt tag

  • pyChrome.py

    • It is the main class object. pyChrome.py extends and simplify the APIs beyond just Selenium Webdriver APIs. It inherits most functionality from Selenium Webdriver APIs, but it also uses other modules such as urllib2, scipy, numpy, json, and javascript for creating a Web Automation Platform.
  • src/browser.py

    • It is a subclass of pyChrome.py. It manages the client (Chrome or Ghostdriver) such as for opening and closing web page, navigating through pages, controlling tabs, finding Web element within the page, and interacting with the page.
  • src/window.py

    • It is a subclass of pyChrome.py. It handles position, size, zooming and scrolling functionality of the window. It is required component when browsing using Chrome Driver. However, it does not have any effect when using PhantomJS driver.
  • src/capture.py

    • It is a subclass of Browser. It handles screen capturing in PNG format, dumping Web page or Web element source code in HTML format. It also handle record functionality. It can manually or programmatically record selected element to playback in sequence. It has other functions including for storing and loading captured elements to and from JSON file.
  • src/combo.py

    • It is a subclass of pyChrome.py. It contains set of functons for performing quick task (quick acess) that is used oftenly, such as Login to Facebook, Opening Google Search Engine, Checking Email etc...
  • src/navigation.py

    • It is a subclass of browser.py. It manages navigating through pages using back() and forward() command.
  • src/tab.py

    • It is a subclass of browser.py. It manages controlling multiple tabs such as creating a new tab, closing existing tab, or switching to adjacent tab. It can also index to tab.
  • src/interaction.py

    • It is a sublcass of browser.py. It manages interacting with the page Web Element. These are such as clicking on element, sending text to element, or sending action keys to element.
  • src/element.py

    • Currently, it is a subclass of pyChrome.py. It contains and manages searching and locating Web Element by id, name, classname, tag, partial text, link text, css selector, and xpath. It has also other functions that uses special algorithms to better traverse through elements and manipulate element.
  • bin/chromedriver

    • It's a Webdriver that Selenium Webdriver requires specifically for accessing Chrome client. pyChrome.py uses ChromeDriver APIs to access Chrome browser functionality such as opening a page, and finding a Web element on the page. This checkout includes ChromeDriver 2.29 for macOS.
  • bin/phantomjs

    • It's a Webdriver that Selenium Webdriver requires specifically for headless browsing. pyChrome.py uses PhantomJS as a Ghostdriver to browse, automate, and mine unnoticeably. This checkout includes PhantomJS 2.1.1 for macOS.
  • bin/chromedriver.exe

    • It's a Webdriver that Selenium Webdriver requires specifically for accessing Chrome client. pyChrome.py uses ChromeDriver APIs to access Chrome browser functionality such as opening a page, and finding a Web element on the page. This checkout includes ChromeDriver 2.29 for Windows.
  • bin/phantomjs.exe

    • It's a Webdriver that Selenium Webdriver requires specifically for headless browsing. pyChrome.py uses PhantomJS as a Ghostdriver to browse, automate, and mine unnoticeably. This checkout includes PhantomJS 2.1.1 for Windows.
  • config.json (Recommended)

    • Contains all the configuration settings for how the server and the client should start. When pyChrome.py object gets created, it reads the configuration settings from config.json. If the file is not present, it creates a default settings. Users can also modify these settings via calling pyChrome.py APIs.
  • demo/* (Optional)

    • Demo to run most of the implemented functions
  • test/test.py (Optional)

    • Test Suite to run all the implemented functions

Documentation

For documentation on Selenium, see Selenium Documentation webpage.

For documentation on using Selenium with Python, check Selenium Python website.

For getting started with using WebDriver for Chrome, see Chrome WebDriver document.

For getting started with using GhostDriver, see PhantomJS document.

For documentation on how PyChrome works, see PyChrome webpage.

pychrome's People

Contributors

siversalih avatar

Watchers

 avatar

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.