Pre-requirements: Download links:
● Python Basics
● Chrome Web Browser ● PYTHON
● Internet Connection ● PYCHARM
Documents:
● Selenium unofficial
Selenium architecture
Navigation:
driver.get("{website_url}")
Locators (to locate the web element):
● ID = "id"
● XPATH = "xpath"
● LINK_TEXT = "link text"
● PARTIAL_LINK_TEXT = "partial link text"
● NAME = "name"
● TAG_NAME = "tag name"
● CLASS_NAME = "class name"
● CSS_SELECTOR = "css selector"
Common Actions:
● .send_keys() = to enter input value in a blank
● .click() = to give click command
● .clear() = to clear the input field
● .text = to copy the text
CSS Selector Locator
FROM SYNTAX
Class, Attribute & Value tagname.classvalue[attribute = ‘value’]
Attribute & Value tagname[attribute = ‘value’]
ID tagname#IDvalue
Class tagname.classvalue
Note: Tagname is optional
XPATH Locator 1
FROM SYNTAX
Attribute & Value //tagname[@attribute = ‘value’]
2 Attributes & Values //tagname[@attribute1 = ‘value1’ and/or @attribute2 = ‘value2’]
Text //tagname[text() = ‘type text here’]
Starts with //tagname[starts-with(@attribute,’starting values’)]
contains //tagname[contains(@attribute,’value’)]
Starts with and contains //tagname[starts-with(@attribute1,'starting values') and/or contains(@attribute2,’value')]
Partial Text //tagname[contains/starts-with(text(), ‘partial text here’)]
Use * if don't want to use specific tagname or attribute.
XPATH Locator 2
FROM SYNTAX
Parents to any child or grandchild //tagname[@attribute = ‘value’]//tagname[@attribute = ‘value’]
Parents to specific no. of child or grandchild (//tagname[@attribute = ‘value’]//tagname)[number]
Parents to last child or grandchild (//tagname[@attribute = ‘value’]//tagname)[last()]
Parents to 3rd last child or grandchild (//tagname[@attribute = ‘value’]//tagname)[last()-2]
Child to any ancestor //tagname[@attribute = ‘value’]/ancestor::tagname[@attribute = ‘value’]
Parent to first n number of child (//tagname[@attribute = ‘value’]//tagname)[position() >,<,= number]
/ means absolute, // means relative.
Framework
A framework is a structure that we use to build project. It acts as
a foundation so we don't have to deal with creating unnecessary
extra logic from scratch.
A framework is similar to a template in that we can modify it and
add certain features and higher functionalities to create a
complex and broad project that many people can use.
Pytest Document
PYTHON SELENIUM
with PYTEST
( HINDI 2023 )
#16 - PYTEST FRAMEWORK
BASICS (PART-1)