diff --git a/README.md b/README.md
index 8abccf3..0bd32da 100644
--- a/README.md
+++ b/README.md
@@ -396,7 +396,7 @@ Distributed under the MIT LICENSE license. See [``LICENSE``](https://github.com/
The following people helped in creating the above content.
-
+
### If you like the project give a star [
](https://github.com/Logan1x/Python-Scripts/stargazers)
diff --git a/bin/File_Dispatcher/main.py b/bin/File_Dispatcher/main.py
new file mode 100644
index 0000000..2e8b711
--- /dev/null
+++ b/bin/File_Dispatcher/main.py
@@ -0,0 +1,18 @@
+import shutil
+import os
+
+path = "D:\\Abdul Rehman\\AI Automations\\File_Dispatcher"
+
+print("Before Moving Files ")
+print(os.listdir(path))
+
+m = "D:\\Abdul Rehman\\AI Automations\\Source\\Source\\abd.txt"
+print(os.listdir(m))
+
+destination = "D:\\Abdul Rehman\\Downloads_Backup\Images"
+
+if m.endswith(('.txt')):
+
+ dest = shutil.move(source, destination, copy_function="Move")
+else:
+ print("Unable to Fetch it")
diff --git a/bin/Linux and Windows Desktop Setup Automation/README.md b/bin/Linux and Windows Desktop Setup Automation/README.md
new file mode 100644
index 0000000..493202a
--- /dev/null
+++ b/bin/Linux and Windows Desktop Setup Automation/README.md
@@ -0,0 +1,65 @@
+# 🛠️ In Development
+
+This repository contains a collection of **automation and optimization scripts**, aiming to improve the **development environment on Linux** and **gaming performance on Windows**.
+
+---
+
+## 🐧 Linux Automation Scripts
+
+The Python script **`automation_script.py`** is designed to streamline the setup of a new development environment on Linux.
+It automates the installation of essential tools, ensuring everything is ready to get you started quickly.
+
+### Linux Script Features
+- **System Updates**: Runs `apt update` and `apt upgrade` to keep packages up to date.
+- **Essential Tools**: Automatically installs `htop` (process monitor), `Git` (version control), and `Neofetch` (system information).
+- **Development Environment**: Installs **Visual Studio Code** via Snap.
+- **Customization**: Includes `GNOME Tweaks` and `GNOME Shell Extensions` to customize the user interface.
+
+---
+
+## 🎮 Windows Optimization Scripts
+
+The PowerShell script **`windows_gaming_tweaks.ps1`** is an interactive tool for optimizing Windows and boosting gaming performance.
+It provides a simple, straightforward menu to run system maintenance and repair tasks.
+
+### 💻 Windows Script Features
+- **SFC/SCANNOW**: Scans and repairs corrupted system files.
+- **CHKDSK**: Analyzes and fixes disk errors to maintain data integrity.
+- **Temporary File Cleanup**: Removes unnecessary files that take up space and slow down the system.
+- **DISM**: Repairs the operating system image, ensuring updates work properly.
+
+---
+
+## How to Use
+
+### 🔹 On Linux
+1. Clone the repository:
+ ```bash
+ git clone https://github.com/Logan1x/Python-Scripts.gitgit
+ ```
+
+2. Enter the repository directory:
+ ```bash
+ cd Python-Scripts
+ ```
+
+3. Execute the script:
+ ```bash
+ python3 automation_script.py
+ ```
+
+### 🔹 On Windows
+
+1. Open PowerShell as Administrator. To do this, right-click the Start Menu icon and select `Windows PowerShell (Admin)` or `Terminal (Admin)`.
+
+2. Navigate to the directory where the script is saved:
+ ```bash
+ cd C:\path\to\repository
+ ```
+
+3. Execute the script:
+ ```bash
+ .\windows_gaming_tweaks.ps1
+ ```
+
+Note: If the script doesn't run, you might need to adjust the PowerShell execution policy. Use the command `Set-ExecutionPolicy RemoteSigned` (run as Administrator) to allow local scripts to execute.
\ No newline at end of file
diff --git a/bin/Linux and Windows Desktop Setup Automation/scriptLinux.py b/bin/Linux and Windows Desktop Setup Automation/scriptLinux.py
new file mode 100644
index 0000000..c20380d
--- /dev/null
+++ b/bin/Linux and Windows Desktop Setup Automation/scriptLinux.py
@@ -0,0 +1,38 @@
+#In development
+
+import subprocess
+import sys
+
+def autom_sudoapt(command):
+ try:
+ subprocess.run(command, check=True, text=True, shell=True)
+ print(f"Comando '{command}' executado com sucesso.")
+ except subprocess.CalledProcessError as e:
+ print(f"Erro ao executar o comando '{command}': {e}", file=sys.stderr)
+ sys.exit(1)
+
+def main():
+ print("Iniciando a atualização e instalação do htop, vscode e git...")
+
+ autom_sudoapt("sudo apt update -y")
+
+ autom_sudoapt("sudo apt upgrade -y")
+
+ autom_sudoapt("sudo apt install -y htop")
+
+ autom_sudoapt("sudo apt install -y git")
+
+ autom_sudoapt("sudo snap install -y --classic code")
+
+ autom_sudoapt("sudo apt install neofetch -y")
+
+ autom_sudoapt("sudo apt install gnome-tweaks -y")
+
+ autom_sudoapt("sudo apt install gnome-shell-extensions -y")
+
+ autom_sudoapt("sudo apt install gnome-terminal -y")
+
+ print("Atualização e instalação concluídos!")
+
+if __name__ == "__main__":
+ main()
\ No newline at end of file
diff --git a/bin/Linux and Windows Desktop Setup Automation/scriptWin.ps1 b/bin/Linux and Windows Desktop Setup Automation/scriptWin.ps1
new file mode 100644
index 0000000..60184b9
--- /dev/null
+++ b/bin/Linux and Windows Desktop Setup Automation/scriptWin.ps1
@@ -0,0 +1,104 @@
+#In development
+
+# Check for administrator privileges
+if (-not ([Security.Principal.WindowsPrincipal][Security.Principal.WindowsIdentity]::GetCurrent()).IsInRole([Security.Principal.WindowsBuiltInRole]::Administrator)) {
+ Write-Warning "This script needs to be run as an Administrator. Restarting with elevated privileges..."
+ Start-Process powershell "-NoProfile -ExecutionPolicy Bypass -File `"$PSCommandPath`"" -Verb RunAs
+ exit
+}
+
+# Function to display the menu
+function Show-Menu {
+ Clear-Host
+ Write-Host "------------------------------------------------------" -ForegroundColor Cyan
+ Write-Host "Script for Windows optimization with a focus on games " -ForegroundColor White
+ write-Host " Developed by euopaulin " -ForegroundColor White
+ Write-Host "------------------------------------------------------" -ForegroundColor Cyan
+ Write-Host " Choose an option:" -ForegroundColor White
+ Write-Host "------------------------------------------------------" -ForegroundColor Cyan
+ Write-Host "1. Run SFC/SCANNOW" -ForegroundColor DarkRed
+ Write-Host "2. Run CHKDSK" -ForegroundColor DarkRed
+ Write-Host "3. Clean temporary files" -ForegroundColor DarkRed
+ Write-Host "4. Restore system image (DISM)" -ForegroundColor DarkRed
+ Write-Host "5. Exit" -ForegroundColor DarkGreen
+ Write-Host "------------------------------------------------------" -ForegroundColor Cyan
+}
+
+# Main loop to show the menu and process user input
+while ($true) {
+ Show-Menu
+
+ $choice = Read-Host "Enter the number of your choice"
+
+ switch ($choice) {
+ "1" {
+ Write-Host "Option 1 selected: Running SFC/SCANNOW..." -ForegroundColor Yellow
+ try {
+ & sfc /scannow
+ if ($LASTEXITCODE -eq 0) {
+ Write-Host "SFC/SCANNOW executed successfully." -ForegroundColor Green
+ } else {
+ Write-Host "Error running SFC/SCANNOW. Make sure to run the script as an Administrator." -ForegroundColor Red
+ }
+ } catch {
+ Write-Host "An error occurred while running the command." -ForegroundColor Red
+ }
+ break
+ }
+ "2" {
+ Write-Host "Option 2 selected: Running CHKDSK..." -ForegroundColor Yellow
+ $drive = Read-Host "Enter the drive letter (e.g., C)"
+ Write-Host "Checking drive $drive..." -ForegroundColor Yellow
+ try {
+ # Using the native PowerShell command
+ Repair-Volume -DriveLetter $drive -Scan -Verbose
+ Write-Host "CHKDSK executed successfully." -ForegroundColor Green
+ } catch {
+ Write-Host "An error occurred while running the command." -ForegroundColor Red
+ }
+ break
+ }
+ "3" {
+ Write-Host "Option 3 selected: Cleaning temporary files..." -ForegroundColor Yellow
+ try {
+ $tempPaths = "$env:TEMP\*", "$env:SystemRoot\Temp\*"
+ foreach ($tempPath in $tempPaths) {
+ if (Test-Path $tempPath) {
+ Remove-Item -Path $tempPath -Recurse -Force -ErrorAction SilentlyContinue
+ }
+ }
+ Write-Host "Temporary files cleaned successfully." -ForegroundColor Green
+ } catch {
+ Write-Host "An error occurred while cleaning temporary files." -ForegroundColor Red
+ }
+ break
+ }
+ "4" {
+ Write-Host "Option 4 selected: Restoring system image (DISM)..." -ForegroundColor Yellow
+ try {
+ & dism /Online /Cleanup-Image /RestoreHealth
+ if ($LASTEXITCODE -eq 0) {
+ Write-Host "DISM executed successfully." -ForegroundColor Green
+ } else {
+ Write-Host "Error running DISM. Make sure to run the script as an Administrator." -ForegroundColor Red
+ }
+ } catch {
+ Write-Host "An error occurred while running the command." -ForegroundColor Red
+ }
+ break
+ }
+ "5" {
+ Write-Host "Exiting the script. Goodbye!" -ForegroundColor Red
+ Start-Sleep -Seconds 2
+ exit
+ }
+ default {
+ Write-Host "Invalid option. Please enter a number from 1 to 5." -ForegroundColor Red
+ break
+ }
+ }
+
+ Write-Host ""
+ Write-Host "Press any key to continue..." -ForegroundColor White
+ $null = [System.Console]::ReadKey($true)
+}
\ No newline at end of file
diff --git a/bin/Selenium basics with python/README.md b/bin/Selenium basics with python/README.md
new file mode 100644
index 0000000..b098245
--- /dev/null
+++ b/bin/Selenium basics with python/README.md
@@ -0,0 +1,134 @@
+## Selenium Driver with the Python from scratch with examples
+
+## Need to install
+Python
+Selenium ------------------> pip instll selenium
+Chromedriver--------------->https://chromedriver.chromium.org/getting-started
+
+
+
+
+## Selenium basics 1
+ (i) basics of the selenium web driver small commands
+ (ii) minimize and maximise the functionality
+
+
+
+## Selenium basics 2
+Navigation commands mainly use to move previous page(<-) and forward page(->) page
+(i) driver.back()
+(ii) driver.forward()
+
+
+
+## Selenium basics 3
+Demonstrating the condtional function is_selected, is_enabled, is_displayed() mainly for validation purpose
+ (i) is_enabled()
+ (ii) is_selected()
+ (iii) is_displayed()
+
+
+
+## Selenium basics 4
+
+Demonstrating the Waits in selenium web driver
+
+Explicit Wait command, the WebDriver is directed to wait until a certain condition occurs before proceeding with executing the code.
+Setting Explicit Wait is important in cases where there are certain elements that naturally take more time to load
+
+Implicit Wait directs the Selenium WebDriver to wait for a certain measure of time before throwing an exception.
+Once this time is set, WebDriver will wait for the element before the exception occurs
+
+
+
+
+## Selenium basics 5
+Input Box And Text Box fucntionality using selenium driver
+
+(i) send_keys() to add the message or input into input_box/textarea
+(ii) submit button to submit.
+
+
+
+
+## Selenium basics 6
+In this web page we will select the checkbox and radio types of input
+using
+ element.click()
+And also check whenever there is a iframe we need to go into iframe using (optional)(Note: we are selecting radio buttons in frame that's why required to go iframe)
+ (i)switch_to.frame('frame_id') --> to select the elements in the specific sections
+ (ii)switch_to.default_content() --> switch to normal mode always is best practice
+ (This two are mostly used in the automation testing perspective. "In safty place like the tracsaction for ex, slack transcation they use nested iframes.)
+
+
+
+## Selenium basics 7
+Lets select from the drop down plane with the help of the selenium web driver command by 3 ways as follow:
+Step 1) Select the element using the element = select(driver.find_element())
+Step 2) Select the value using the following three ways we have
+ (i)element.select_by_visible_text("")
+ (ii)element.select_by_value("")
+ (iii)element.select_by_index()
+
+
+## Selenium basics 8
+'''
+We are trying to interact with the links and mainly simply we can get them using the By function
+
+Let's getting the No of the links, all link text, partial link text so we get hands on find_elements function too.
+
+
+another ways to find
+(i) By.LINK_TEXT --> complete text for single element
+(ii) By.PARTIAL_LINK_TEXT --> partial text is enough for finding individual work
+'''
+
+
+
+## Selenium basics 9
+
+Let us check how we can handle the alerts and popups on the website using selenium websdrive in python
+
+we can driver.switch_to.alert()
+where multiple things there accept using .accept()
+where multiple things there accept using .dismiss()
+
+another ways to find
+(i) By.LINK_TEXT --> complete text for single element
+(ii) By.PARTIAL_LINK_TEXT --> partial text is enough for finding individual work
+'''
+
+
+## Selenium basics 10
+Handling the Windows tab using selenium webdriver with Python
+
+Basics which is necessary to understand.
+
+
+
+## Selenium basics 11
+
+handle the scroll in a web page using the python with selenium
+
+
+
+## Selenium basics 12
+
+handle the mouse hower or touch on mobile screen actions through the selenium web driver commands
+
+
+## Selenium basics 13
+
+Double Click action using mouse handling on python selenium
+
+## Selenium basics 14
+
+perform some more functionality around ActionChain
+
+
+Connect with me:
+
+
+
+
+
diff --git a/bin/Selenium basics with python/basics_selenium1.py b/bin/Selenium basics with python/basics_selenium1.py
new file mode 100644
index 0000000..7a7d4c8
--- /dev/null
+++ b/bin/Selenium basics with python/basics_selenium1.py
@@ -0,0 +1,12 @@
+
+'''
+Simple hands on the selenium with help of python library
+
+'''
+from selenium import webdriver
+driver = webdriver.Chrome(executable_path="chromedriver.exe") # to use the functionality of the web driver we need to create the object of the drive with specific browser which we want to use
+driver.get("https://mohitpeshwani.github.io/crazyprogrammer/") #to load the target url we user webdriver.get("url") to load it
+driver.maximize_window() #to maxiumize the windows
+driver.minimize_window() #to minimize the windows
+print(driver.title) #to get the exact title of the page we can use the webdriver.title
+driver.quit() # to close the automation windows
\ No newline at end of file
diff --git a/bin/Selenium basics with python/basics_selenium10.py b/bin/Selenium basics with python/basics_selenium10.py
new file mode 100644
index 0000000..bf633ab
--- /dev/null
+++ b/bin/Selenium basics with python/basics_selenium10.py
@@ -0,0 +1,40 @@
+'''
+Handling the Windows tab using selenium webdriver with Python
+
+Basics which is necessary to understand
+
+Every windows has it's own hexadecimal value assign with it ex,(CDwindow-5907D74FC9E6C6E2918AB140D08C34AE)
+using
+ driver.current_window_handler
+
+To switch into within any other tab of the similar webpage we can simply use the same
+
+ driver.switch_to.windows(handler)
+
+to get all the windows
+
+ driver.window_handles
+
+Remeber difference between the two .quit() and .close()
+ --> quit() terminate the browser
+ --> close() terminate the current tab on the browser
+
+'''
+from selenium import webdriver
+from selenium.webdriver.common.by import By
+import time
+driver =webdriver.Chrome(executable_path="chromeDriver.exe")
+driver.get("https://demo.automationtesting.in/Windows.html")
+clicked_element = driver.find_element(By.XPATH,"//a[@href='http://www.selenium.dev']//button[@class='btn btn-info'][normalize-space()='click']").click()
+time.sleep(2)
+print(driver.current_window_handle)
+tabs = driver.window_handles
+for tab in tabs:
+ driver.switch_to.window(tab)
+ time.sleep(2)
+ print(driver.title)
+ driver.close()
+driver.quit()
+
+
+
diff --git a/bin/Selenium basics with python/basics_selenium11.py b/bin/Selenium basics with python/basics_selenium11.py
new file mode 100644
index 0000000..083e427
--- /dev/null
+++ b/bin/Selenium basics with python/basics_selenium11.py
@@ -0,0 +1,21 @@
+'''
+Let's check who we can handle the scroll in a web page using the python with selenium
+
+Simplest wait is to execute the js using the
+ driver.execute_script("windows.scrollBy(0,500))
+
+ Note: we can execute javascript using
+ (1) driver.execute_script("","")
+ (2) driver.execute_async_scipt("","")
+
+
+'''
+
+from selenium import webdriver
+import time
+driver =webdriver.Chrome(executable_path="chromeDriver.exe")
+driver.get("https://mohitpeshwani.github.io/crazyprogrammer/")
+time.sleep(3)
+driver.execute_script("window.scrollBy(0,500)","")
+time.sleep(3)
+driver.quit()
diff --git a/bin/Selenium basics with python/basics_selenium12.py b/bin/Selenium basics with python/basics_selenium12.py
new file mode 100644
index 0000000..777bcd7
--- /dev/null
+++ b/bin/Selenium basics with python/basics_selenium12.py
@@ -0,0 +1,31 @@
+'''
+Let'us handle the mouse hower or touch on mobile screen actions through the selenium web driver commands
+
+step 1: We need to import addition Object which is
+ ActionChain
+step 2:
+ Also initilize it using using a variable is always preferable
+ action =ActionChain(webdriver)
+
+step 3:
+ to perform any action we need to
+ element.move_to().perform()
+
+'''
+
+from selenium import webdriver
+from selenium.webdriver.common.by import By
+from selenium.webdriver import ActionChains
+import time
+driver =webdriver.Chrome(executable_path="chromeDriver.exe")
+driver.get("https://www.browserstack.com")
+action = ActionChains(driver)
+time.sleep(3)
+product_menu = driver.find_element(By.CSS_SELECTOR,"#product-menu-toggle")
+live_submenu = driver.find_element(By.CSS_SELECTOR,"a[aria-label='Live'] div[class='dropdown-link-text']")
+action.move_to_element(product_menu).perform()
+time.sleep(2)
+live_submenu.click()
+time.sleep(2)
+print("Title include Live: ",driver.title)
+driver.quit()
\ No newline at end of file
diff --git a/bin/Selenium basics with python/basics_selenium13.py b/bin/Selenium basics with python/basics_selenium13.py
new file mode 100644
index 0000000..95e3170
--- /dev/null
+++ b/bin/Selenium basics with python/basics_selenium13.py
@@ -0,0 +1,32 @@
+'''
+Let us check the Double Click action using mouse handling on python selenium
+
+step 1: We need to import addition Object which is
+ ActionChain
+step 2:
+ Also initilize it using using a variable is always preferable
+ action =ActionChain(webdriver)
+
+step 3:
+ to perform any Doubleclick
+ action.doule_click(element).perform() ------------> Double click action
+ action.context_click(element).perform() ------------> Right click actions appear
+
+'''
+
+from selenium import webdriver
+from selenium.webdriver.common.by import By
+from selenium.webdriver import ActionChains
+import time
+
+driver=webdriver.Chrome(executable_path="chromedriver.exe")
+driver.get("https://testautomationpractice.blogspot.com/")
+element = driver.find_element(By.CSS_SELECTOR,"button[ondblclick='myFunction1()']")
+time.sleep(2)
+#ActionChains(driver).double_click(element).perform()
+ActionChains(driver).context_click(element).perform()
+
+time.sleep(2)
+label2 = driver.find_element(By.ID,"field2")
+print(label2.get_property)
+driver.quit()
diff --git a/bin/Selenium basics with python/basics_selenium14.py b/bin/Selenium basics with python/basics_selenium14.py
new file mode 100644
index 0000000..681f358
--- /dev/null
+++ b/bin/Selenium basics with python/basics_selenium14.py
@@ -0,0 +1,26 @@
+'''
+Let us perform some more functionality around ActionChain
+
+ Drag and Drop --> we can simple drag and drop the elements using
+ action.drag_and_drop(element_source, element_target).perform()
+
+
+
+'''
+from selenium import webdriver
+from selenium.webdriver.common.by import By
+from selenium.webdriver import ActionChains
+import time
+
+driver=webdriver.Chrome(executable_path="chromedriver.exe")
+driver.get("https://testautomationpractice.blogspot.com/")
+element = driver.find_element(By.CSS_SELECTOR,"button[ondblclick='myFunction1()']")
+time.sleep(2)
+action =ActionChains(driver)
+drag = driver.find_element(By.ID,"draggable")
+to_drop = driver.find_element(By.ID,"droppable")
+action.drag_and_drop(drag,to_drop).perform()
+time.sleep(2)
+driver.maximize_window()
+driver.save_screenshot("dragAnddrop.png")
+driver.quit()
diff --git a/bin/Selenium basics with python/basics_selenium15.py b/bin/Selenium basics with python/basics_selenium15.py
new file mode 100644
index 0000000..2d5ea85
--- /dev/null
+++ b/bin/Selenium basics with python/basics_selenium15.py
@@ -0,0 +1,31 @@
+'''
+When performing API testing we manily work on the cookies and determine
+So simple things around the cookies are demonstrate which are manily used by QA/Developer during building the website
+
+(i) driver.get_cookies() ----------------------------------------------------> Get all the cookies properities
+(ii) driver.get_cookie("name") -----------------------------------------------> Get individual cookies
+(iii) driver.add_cookie({"name":"string_value", "value": "string_value"})------> Injecting the cookies in current driver from coding point of view
+(iv) driver.delete_all_cookies() ---------------------------------------------> Deleting all the cookies
+(v) driver.delete_cookie(name)-----------------------------------------------> Deleting individual cookie
+
+'''
+
+
+
+from selenium import webdriver
+from selenium.webdriver.common.by import By
+import time
+driver =webdriver.Chrome(executable_path="chromeDriver.exe")
+driver.get("https://www.linkedin.com/in/mohit-peshwani/")
+cookies = driver.get_cookies()
+# get all the cookies
+# print(cookies) --------------------> print all the cookies with list not looks good uncomment it for better understanding while performing
+driver.add_cookie({"name":"python","value":"mohit"})
+
+for cookie in cookies:
+ print(cookie)
+time.sleep(2)
+
+cookies = driver.delete_all_cookies()
+print(driver.get_cookies())
+driver.quit()
diff --git a/bin/Selenium basics with python/basics_selenium2.py b/bin/Selenium basics with python/basics_selenium2.py
new file mode 100644
index 0000000..0e889c3
--- /dev/null
+++ b/bin/Selenium basics with python/basics_selenium2.py
@@ -0,0 +1,22 @@
+'''
+Navigation commands mainly use to move previous page(<-) and forward page(->) page
+(i) driver.back()
+(ii) driver.forward()
+
+'''
+
+from selenium import webdriver
+import time
+driver =webdriver.Chrome(executable_path="chromedriver.exe")
+driver.get("https://www.github.com")
+print(driver.title)
+time.sleep(2) # to wait for 2 seconds
+driver.get("https://www.google.com")
+print(driver.title)
+time.sleep(2)
+driver.back() # it goes once action backward
+time.sleep(2)
+print("Navigated to the back page: ",driver.title)
+driver.forward() # it goes to the next action page if gone
+print("Navigrated to the next page: ",driver.title)
+driver.quit()
diff --git a/bin/Selenium basics with python/basics_selenium3.py b/bin/Selenium basics with python/basics_selenium3.py
new file mode 100644
index 0000000..95e476b
--- /dev/null
+++ b/bin/Selenium basics with python/basics_selenium3.py
@@ -0,0 +1,26 @@
+'''
+conditional commands are used to check wheater the fuction is working fine or not properly (Validation purpose)
+(i) is_enable()
+(ii) is_displayed()
+(iii) is_selected()
+
+prior this we need to select the selector to check for the element to use
+using css selector and xpath selector
+'''
+from selenium import webdriver
+from selenium.webdriver.common.by import By # need to use this selector
+driver = webdriver.Chrome(executable_path="chromedriver.exe")
+
+
+'''
+Using the CSS_selector we are selecting input and checking wheather it's dispalyed properly or not
+Executed : 1)is_displayed() 2)is_enabled()
+
+'''
+driver.get("https://www.google.com/")
+
+element = driver.find_element(By.CSS_SELECTOR,"input[title='Search']")
+
+print(element.is_displayed())
+print(element.is_enabled())
+
diff --git a/bin/Selenium basics with python/basics_selenium3_is_selected.py b/bin/Selenium basics with python/basics_selenium3_is_selected.py
new file mode 100644
index 0000000..7d4a1b2
--- /dev/null
+++ b/bin/Selenium basics with python/basics_selenium3_is_selected.py
@@ -0,0 +1,15 @@
+'''
+Demonstrating the condtional function is_selected in this file
+'''
+
+from selenium import webdriver
+from selenium.webdriver.common.by import By
+driver = webdriver.Chrome(executable_path="chromedriver.exe")
+driver.get("https://demoqa.com/radio-button")
+
+# storing elements and detect wheather they are selected or not
+
+selected_button = driver.find_element(By.CSS_SELECTOR,"label[for='yesRadio']")
+selected_button2 = driver.find_element(By.CSS_SELECTOR,"label[for='impressiveRadio']")
+print(selected_button.is_selected())
+driver.quit()
diff --git a/bin/Selenium basics with python/basics_selenium4_explict_wait.py b/bin/Selenium basics with python/basics_selenium4_explict_wait.py
new file mode 100644
index 0000000..564f369
--- /dev/null
+++ b/bin/Selenium basics with python/basics_selenium4_explict_wait.py
@@ -0,0 +1,23 @@
+'''
+Explicit Wait command, the WebDriver is directed to wait until a certain condition occurs before proceeding with executing the code.
+Setting Explicit Wait is important in cases where there are certain elements that naturally take more time to load
+
+Implicit Wait directs the Selenium WebDriver to wait for a certain measure of time before throwing an exception.
+Once this time is set, WebDriver will wait for the element before the exception occurs
+'''
+from selenium import webdriver
+from selenium.webdriver.common.by import By
+from selenium.webdriver.support.ui import WebDriverWait
+from selenium.webdriver.support import expected_conditions as EC
+
+driver = webdriver.Chrome(executable_path="chromedriver.exe")
+driver.get("https://mohitpeshwani.github.io/crazyprogrammer/")
+try:
+ # wait 10 extra seconds before looking for element until it found my website image
+ element = WebDriverWait(driver, 10).until(
+ EC.presence_of_element_located((By.CSS_SELECTOR, "img[src='./images/man12.png']"))
+ )
+ print(element.is_displayed()) # should return true
+ print("Demontrating the explicit wait ")
+finally:
+ driver.quit()
\ No newline at end of file
diff --git a/bin/Selenium basics with python/basics_selenium4_implict_wait.py b/bin/Selenium basics with python/basics_selenium4_implict_wait.py
new file mode 100644
index 0000000..45a0294
--- /dev/null
+++ b/bin/Selenium basics with python/basics_selenium4_implict_wait.py
@@ -0,0 +1,20 @@
+'''
+Explicit Wait command, the WebDriver is directed to wait until a certain condition occurs before proceeding with executing the code.
+Setting Explicit Wait is important in cases where there are certain elements that naturally take more time to load
+
+Implicit Wait directs the Selenium WebDriver to wait for a certain measure of time before throwing an exception.
+Once this time is set, WebDriver will wait for the element before the exception occurs
+'''
+from selenium import webdriver
+from selenium.webdriver.common.by import By
+from selenium.webdriver.support.ui import WebDriverWait
+from selenium.webdriver.support import expected_conditions as EC
+
+driver = webdriver.Chrome(executable_path="chromedriver.exe")
+driver.get("https://mohitpeshwani.github.io/crazyprogrammer/")
+#implicity waiting for the 10 seconds
+driver.implicitly_wait(10)
+#element will check after the 10 seconds of wait
+element=driver.find_element(By.XPATH,"//div[@class=' hero flex flex-1 items-center justify-between ']//img[1]") #using xpath selector to get the element
+print(element.is_displayed())
+driver.quit()
diff --git a/bin/Selenium basics with python/basics_selenium5.py b/bin/Selenium basics with python/basics_selenium5.py
new file mode 100644
index 0000000..5a21173
--- /dev/null
+++ b/bin/Selenium basics with python/basics_selenium5.py
@@ -0,0 +1,25 @@
+'''
+Input Box And Text Box fucntionality using selenium driver
+
+(i) send_keys() to add the message or input into input_box/textarea
+(ii) submit button to submit.
+'''
+from selenium import webdriver
+from selenium.webdriver.common.by import By
+from selenium.webdriver.support.ui import WebDriverWait
+import time
+driver = webdriver.Chrome(executable_path="chromedriver.exe")
+driver.get('https://app.hackthebox.com/login')
+driver.maximize_window()
+time.sleep(5)
+# adding the id/class of input boxs into the variables
+login_email = driver.find_element(By.XPATH,"//input[@id='loginEmail']")
+password = driver.find_element(By.XPATH,"//input[@id='loginPassword']")
+submit_btn = driver.find_element(By.XPATH,"//input[@id='loginPassword']")
+
+# Now we will send the random names, email and message and submit
+login_email.send_keys("automation@gmail.com")
+password.send_keys("Ronaldo the GOAT")
+submit_btn.submit()
+time.sleep(5)
+driver.quit()
\ No newline at end of file
diff --git a/bin/Selenium basics with python/basics_selenium6.py b/bin/Selenium basics with python/basics_selenium6.py
new file mode 100644
index 0000000..5c3b303
--- /dev/null
+++ b/bin/Selenium basics with python/basics_selenium6.py
@@ -0,0 +1,38 @@
+'''
+In this web page we will select the checkbox and radio types of input
+using
+ element.click()
+And also check whenever there is a iframe we need to go into iframe using (optional)(Note: we are selecting radio buttons in frame that's why required to go iframe)
+ (i)switch_to.frame('frame_id') --> to select the elements in the specific sections
+ (ii)switch_to.default_content() --> switch to normal mode always is best practice
+ (This two are mostly used in the automation testing perspective. "In safty place like the tracsaction for ex, slack transcation they use nested iframes.)
+
+
+'''
+
+from selenium import webdriver
+from selenium.webdriver.common.by import By
+driver = webdriver.Chrome(executable_path="chromedriver.exe")
+driver.get("https://www.w3schools.com/tags/tryit.asp?filename=tryhtml5_input_type_radio")
+
+#Switching to iframe with id you can even use iframe_name
+driver.switch_to.frame('iframeResult')
+
+#getting the locators of the elements
+html_selector = driver.find_element(By.XPATH, "//input[@id='html']")
+css_selector = driver.find_element(By.XPATH, "//input[@id='css']")
+js_selector = driver.find_element(By.XPATH, "//input[@id='javascript']")
+
+#Selected the element
+html_selector.click()
+
+# html selector should give the true and other will be false
+print(html_selector.is_selected())
+print(css_selector.is_selected())
+print(js_selector.is_selected())
+
+#Switching to normal window format
+driver.switch_to.default_content()
+driver.quit()
+
+
diff --git a/bin/Selenium basics with python/basics_selenium7.py b/bin/Selenium basics with python/basics_selenium7.py
new file mode 100644
index 0000000..93df509
--- /dev/null
+++ b/bin/Selenium basics with python/basics_selenium7.py
@@ -0,0 +1,29 @@
+'''
+Lets select from the drop down plane with the help of the selenium web driver command by 3 ways as follow:
+Step 1) Select the element using the element = select(driver.find_element())
+Step 2) Select the value using the following three ways we have
+ (i)element.select_by_visible_text("")
+ (ii)element.select_by_value("")
+ (iii)element.select_by_index()
+'''
+
+from selenium import webdriver
+from selenium.webdriver.common.by import By
+from selenium.webdriver.support.ui import Select
+import time
+driver = webdriver.Chrome(executable_path="chromeDriver.exe")
+
+driver.get("https://fs2.formsite.com/meherpavan/form2/index.html?1537702596407")
+link_first = Select(driver.find_element(By.ID,'RESULT_RadioButton-9'))
+
+#link_first.select_by_visible_text("Afternoon")
+
+#link_first.select_by_value("Radio-2")
+
+link_first.select_by_index(2)
+
+time.sleep(2)
+
+driver.quit()
+
+
diff --git a/bin/Selenium basics with python/basics_selenium8.py b/bin/Selenium basics with python/basics_selenium8.py
new file mode 100644
index 0000000..d1998f3
--- /dev/null
+++ b/bin/Selenium basics with python/basics_selenium8.py
@@ -0,0 +1,37 @@
+'''
+We are trying to interact with the links and mainly simply we can get them using the By function
+
+Let's getting the No of the links, all link text, partial link text so we get hands on find_elements function too.
+
+
+another ways to find
+(i) By.LINK_TEXT --> complete text for single element
+(ii) By.PARTIAL_LINK_TEXT --> partial text is enough for finding individual work
+'''
+from selenium import webdriver
+from selenium.webdriver.common.by import By
+import time
+
+driver =webdriver.Chrome(executable_path="chromeDriver.exe")
+driver.get("https://mohitpeshwani.github.io/crazyprogrammer/")
+time.sleep(5)
+no_of_links = driver.find_elements(By.TAG_NAME,'a')
+time.sleep(2)
+print("No of the links available in the web page:", len(no_of_links))
+
+#we link to go on the link no 2
+no_of_links[2].click()
+
+#printing the assosicate text with the link
+for i in no_of_links:
+ print(i.text)
+
+#element using LINK_TEXT
+print(driver.find_element(By.LINK_TEXT,'mohitpesh23@gmail.com').is_displayed())
+
+#element using LINK_TEXT
+print(driver.find_element(By.PARTIAL_LINK_TEXT,'mohitpesh23').is_displayed())
+
+time.sleep(5)
+driver.quit()
+
diff --git a/bin/Selenium basics with python/basics_selenium9.py b/bin/Selenium basics with python/basics_selenium9.py
new file mode 100644
index 0000000..e8bcc71
--- /dev/null
+++ b/bin/Selenium basics with python/basics_selenium9.py
@@ -0,0 +1,28 @@
+'''
+Let us check how we can handle the alerts and popups on the website using selenium websdrive in python
+
+we can driver.switch_to.alert()
+where multiple things there accept using .accept()
+where multiple things there accept using .dismiss()
+
+'''
+
+from selenium import webdriver
+from selenium.webdriver.common.by import By
+from selenium.webdriver.support.ui import WebDriverWait
+import time
+
+driver = webdriver.Chrome(executable_path= "chromeDriver.exe")
+driver.get("https://demo.automationtesting.in/Alerts.html")
+alert_box = driver.find_element(By.CSS_SELECTOR,".btn.btn-danger")
+alert_box.click()
+time.sleep(2)
+# Switching to the ok using accept() else we can use the dismiss() for cancle purpose if available
+driver.switch_to.alert.accept()
+time.sleep(2)
+driver.switch_to.default_content()
+
+time.sleep(2)
+driver.quit()
+
+
diff --git a/bin/Selenium basics with python/chromedriver.exe b/bin/Selenium basics with python/chromedriver.exe
new file mode 100644
index 0000000..bc6efd7
Binary files /dev/null and b/bin/Selenium basics with python/chromedriver.exe differ
diff --git a/bin/Selenium basics with python/dragAnddrop.png b/bin/Selenium basics with python/dragAnddrop.png
new file mode 100644
index 0000000..cf7e54a
Binary files /dev/null and b/bin/Selenium basics with python/dragAnddrop.png differ
diff --git a/images/mohitpeshwani.png b/images/mohitpeshwani.png
new file mode 100644
index 0000000..addccba
Binary files /dev/null and b/images/mohitpeshwani.png differ