Python: Login to Website – Selenium
source link: https://www.shellhacks.com/python-login-to-website-selenium/
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
Selenium is an open source tool that automates web browsers and is widely used for automated testing of web applications.
With Python and Selenium you can easily create a script that automates login to a website, that is very useful, for example, for web scraping.
This note shows how to create a Python script to login to a website automatically using Selenium on the example of Instagram.
Cool Tip: How to download a file from URL using Python! Read More →
Login to a Website using Selenium in Python
Create a project’s working directory:
$ mkdir -p ~/projects/login2website
Inside the project’s working directory create and activate a virtual environment:
$ cd ~/projects/login2website $ python3 -m venv venv $ . venv/bin/activate
Install Selenium:
$ pip install selenium $ pip show selenium | grep -i version Version: 4.3.0
Download und unzip the latest stable version of a ChromeDriver (the executable that Selenium uses to interact with Chrome):
$ unzip ~/Downloads/chromedriver_linux64.zip -d /usr/local/bin $ chromedriver --version ChromeDriver 103.0.5060.53
Create a login.py
file with the contents as follows:
# login.py # by www.ShellHacks.com from selenium import webdriver from selenium.webdriver.common.by import By from random import randint from time import sleep driver = webdriver.Chrome("/usr/local/bin/chromedriver") # Time to wait for element's presence driver.implicitly_wait(10) driver.get('https://www.instagram.com/') # Sleep a random number of seconds (between 5 and 10) sleep(randint(5,10)) # Click 'Accept cookies' button on www.instagram.com accept_cookis_button = driver.find_element(By.XPATH, '//button[text()="Only allow essential cookies"]') accept_cookis_button.click() sleep(randint(5,10)) username_input = driver.find_element(By.CSS_SELECTOR, 'input[name="username"]') password_input = driver.find_element(By.CSS_SELECTOR, 'input[name="password"]') username_input.send_keys("yourUsername") password_input.send_keys("yourP@ssw0rd") sleep(randint(5,10)) login_button = driver.find_element(By.XPATH, '//button[@type="submit"]') login_button.click() # Close the browser after 100 seconds sleep(100) driver.close()
Execute the login.py
to login to Instagram:
$ python login.py
Cool Tip: How to add random delays in Python to not get banned! Read More →
Finding an XPath and CSS Selector
In the example above i use the XPath (XML path) and CSS Selectors to identify the web elements that are required to automate the login process.
To get an XPath string or a CSS Selector string of an element, right-click on it in your web browser, select “Inspect”, right-click on the highlighted area and go to “Copy” → “Copy XPath” or “Copy selector”:
This will copy the XPath or the CSS Selector of the highlighted item to your clipboard.
Alternatively you can use a SelectorsHub plugin:
Cool Tip: How to set the ‘User-Agent’ HTTP request header in Python! Read More →
Recommend
About Joyk
Aggregate valuable and interesting links.
Joyk means Joy of geeK