GithubHelp home page GithubHelp logo

elsnoman / pyleniumio Goto Github PK

View Code? Open in Web Editor NEW
263.0 15.0 50.0 36.12 MB

Bring the best of Selenium and Cypress into a single Python package

Home Page: https://docs.pylenium.io

License: MIT License

Python 97.92% JavaScript 2.08%
hacktoberfest python web-automation web-automation-testing selenium selenium-python selenium-webdriver

pyleniumio's Introduction

Hi, I'm Carlos Kidman

  • ๐Ÿ”ญ Iโ€™m currently solving Quality and Testing problems with AI at Qualiti ๐Ÿจ
  • ๐ŸŒฑ I lead QA at the Point(QAP), the Software Quality Community in Utah, USA
  • ๐Ÿ˜Ž Former Engineering Manager at Adobe
  • ๐Ÿงก Software Tester at heart
  • ๐Ÿ—ฃ๏ธ I do workshops and presentations all over the world!
  • ๐Ÿ“ซ How to reach me: LinkedIn, Twitter/X or [email protected]
  • โšก Fun fact: I play futsal every morning at 5:30 โšฝ

Presentations and Courses


I've done hands-on workshops, courses, breakout sessions, keynotes, and more all over the world for the past 10 years. Here are some examples:

๐ŸŽ‰ I will be keynoting at DevOpsDays SLC in 2024!

Projects and Skills



As you can imagine, with over a decade of very hands-on experience, I have worked deeply with many tools and technologies. I provide many examples below, but I didn't want to duplicate multiple icons like AWS even though I have used it in every group you'll see. There isn't a pretty icon for everything I use, like playwright and langchain, but this should give a good idea of what I know well.

๐Ÿค” I don't include anything that I don't know well enough, like React and GraphQL, even though I have written React before. Keeping myself honest

๐Ÿ Code

Python is my primary language since I mostly deal with data, automation, and AI.

Language Skills

โ˜๏ธ Cloud and Orchestration

AWS, and its services, have been the main "cloud" I've used throughout my career and I have worked with many databases.

Cloud and Orchestration Skills

๐Ÿงช Testing, Automation and Analysis

I have worked with a vast amount of tools in this space for many types of testing: UI, API, Security, A11y, O11y, Performance, etc.

Testing Skills

๐Ÿค– Machine Learning and AI

Early in my journey, I had to build my own datasets and train models from scratch. However, the last year has shown how LLMs have made such a huge impact!

I have built multiple features using closed-models, like OpenAI's GPT-4, but I have also used open-sourced models from HuggingFace and even Mixtral!

  • LangChain has been my main framework for creating the pipelines and switching models for each step
  • LangSmith for observability
  • LangServe for deployments
  • I have built things using just Python as well, but LangChain is getting better and better!

AI Skills

โš’๏ธ Projects you can see

You can see my 6 Pinned Projects below, but you can also see all the repos I've created for the QA at the Point (QAP) Community!

My latest project was the QAP Job Poster which scrapes jobs from different sources, filters and ranks them using AI, then posts them to the #jobs channel in our Slack group.

pyleniumio's People

Contributors

abzdel avatar bashangbasir avatar chingc avatar elsnoman avatar hoverhell avatar lostindarkmath avatar marksmayo avatar matteoosh avatar nfk avatar rafutek avatar ramgml avatar rnestler avatar rsporny avatar rusiniak avatar rwerr avatar semics-tech avatar vincent-olivert-riera avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

pyleniumio's Issues

Approval API Testing

Description

Inspired by Angie's article on Approval Testing

http://angiejones.tech/verifying-entire-api-responses/

I think we could do this with the Requests and Pydantic libraries that Pylenium already uses. The idea being that we provide a quick, easy and standard way to do some API Testing. There are different types of API Testing, so having some guides and "built-in" functionality for this would be SUPER helpful for our Users.

Driver.cookies

  • .get_cookie()
  • .get_cookies()
  • .set_cookie()
  • .clear_cookie()
  • .clear_cookies()

py.read_file()

Python handles the reading and writing of files very easily and I don't need to wrap anything in Promises.

more helpful error/fail messages

Example:

assert py.get('[class*="rarityCaption"]').should().have_text('Common')

gave me the AssertionError as expected, but all it says is

Element did not have text: Common

It would be nice to show what it compared against

Element.should()

Could we make the following code cleaner?

spinner = py.get('#serverSideDataTable_processing')
py.wait().until(lambda _: spinner.get_attribute('style') == 'display: block;')
py.wait().until(lambda _: spinner.get_attribute('style') == 'display: none;')

into

py.get('#serverSideDataTable_processing').should().have_attr('style', 'display: block;').and().have_attr('style', 'display; none;')

---or---

py.get('#serverSideDataTable_processing').should().have_attr('style', 'display: block;').then().have_attr('style', 'display; none;')

Element.should() V1 will include:

  • ElementShould class
  • .should().be_clickable()
  • .should().be_visible()
  • .should().have_attr()
  • .should().be_hidden() - still in DOM, but not displayed
  • .should().not_exist() - completely removed from the DOM
  • .should().not_have_attr()
  • .should().have_text(text, bool) - exact match, True for exact casing and no trimming, False to ignore casing and spaces
  • .should().contain_text()
  • .should().be_disabled()
  • .should().be_enabled()
  • .should().be_checked()
  • .should().have_value()
  • .should().not_have_value()
  • .should().not_have_text()
  • .should().be_focused()
  • .should().not_be_focused()
  • .should().have_prop()
  • .should().be_selected()
  • .should().have_class()

[ Doc, gitbook.it]4. Project Structure with pytest : Typo mistakes

Project
conftest.py # 1
pylenium.json
api_tests.py --> api_tests
conftest.py # 2
test_rest_api.py
ui_tests
conftest.py # 3
test_google.py
test_google.py would have access to fixtures in conftest.py #1 and conftest.py #3
test_rest_api.py would have access to fixtures in conftest.py #1 and contest.py #2. --> conftest.py #2.

py.should()

  • .should().have_url()
  • .should().contain_url()
  • .should().have_title()
  • .should().contain_title()

examples/script_sample.py doesn't work

The script_sample.py file doesn't work. It generates the following error because Pylenium() is missing some required arguments:

$ python examples/script_sample.py 
Traceback (most recent call last):
  File "examples/script_sample.py", line 22, in <module>
    main()
  File "examples/script_sample.py", line 13, in main
    py = Pylenium()
TypeError: __init__() missing 2 required positional arguments: 'config' and 'logger'

Synchronize with the Browser

Evil Tester has a LinkedIn Learning course around Synchronizing with the Browser for more robuts waitings
I want to check this out and see if we can implement any of it in Pylenium!

This actually wasn't very helpful for Pylenium at all. Closing this ticket

py.write_file()

Python handles the reading and writing of files very easily and I don't need to wrap anything in Promises.

Allow users to add custom objects to pylenium.json

Being able to use py.config would be really nice, but we need a few things to make this happen:

  • PyleniumConfig can take any additional objects within the custom object
// pylenium.json

{
    custom = {
        "foo": "bar"
    }
}
# use it in code
py.config.custom.get('foo')  # => yields "bar"

---or---

py.config.custom['foo']  # => yields "bar"
  • pylenium.json does not get overriden when a user updates the pyleniumio package

Using Pydantic, we can create our Models to have default values that are only overriden if the user creates a pylenium.json in the Project Root (same directory as our conftest.py)

Elements.should()

This one is not as crucial since they are so easy to represent in Python and pytest.

  • .should().be_empty()
  • .should().have_length()
  • .should().be_greater_than()
  • .should().be_less_than()

For example

# be_empty
assert py.find('a').is_empty()

# have_length
assert py.find('a').length == num

# greater than
assert py.find('a').length > num

# less than
assert py.find('a').length < num

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.