Today at 6 am I've found out that I'm procrastinating for about 1 hour. When I realized that I decided to stop and check my Nozbe account with tasks that I could use for blog-topic. You know based on the article name what topic I've found.
You may ask - how you want to use automation in fight with procrastination?
I've found out that using Pomodoro Technique and special for each of us music gives me more focus than I could ever thought. That's why I'm going to make an automation that will start both of this elements at my browser to get more focused right-away.
I'll use one of the Pomodoro Technique timers and Spotify playlist to play music.
Without further ado, check out this selenium automation I will create!
Selenium for Spotify web-player.
First you need to have a spotify playlist that you personally like to listen to get more focused. I have some of my preferred playlists, one of them is Blue Stahli- Antisleep vol1.
Let's create an automation which for now will open this link :
from page_objects import PageObject, PageElement from selenium.webdriver.common.by import By from selenium.webdriver.support.ui import WebDriverWait from selenium.webdriver.support import expected_conditions as EC class SpotifyPlaylist(PageObject): """Spotify Playlist Page for Selenium Page Object Pattern""" album_uri = "https://open.spotify.com/album/" playlist_uri = "https://open.spotify.com/playlist/" login_uri = "https://spotify.com/login/" username = PageElement(css='input[id="login-username"]') password = PageElement(css='input[id="login-password"]') login_btn = PageElement(css='button[id="g-recaptcha-button"]') def open_playlist(self, playlist_id): self.get(self.playlist_uri + playlist_id) def open_album(self, album_id): self.get(self.album_uri + album_id) def login(self, username, password): self.get(self.login_uri) self.username = username self.password = password self.login_btn.click()
Using it with:
driver = webdriver.Firefox() spotify_page = SpotifyPlaylist(driver) username = "heregoesyourusername" password = "heregoesyourpassword" spotify_page.login(username, password) spotify_page.open_album('56QpDqnTzXqMn3Jjxv73lz')
It will automatically login and go to album.
Taking into accunt that Spotify is not DRM Free, it needs to have
Play DRM settings.
We will cover this in tomorrow topic how to do that because solution is not simplest as it seems.
For now lets move to our second page that we need to make less Procrastination.
I have found that using some pomodoro-technique timer makes me a lot more productive. Let's make a script that will automatically start a pomodoro timer - because that's what I'm currently doing manually.
from page_objects import PageObject, PageElement from selenium.webdriver.common.by import By from selenium.webdriver.support.ui import WebDriverWait from selenium.webdriver.support import expected_conditions as EC class PomodoroPage(PageObject): """Spotify Playlist Page for Selenium Page Object Pattern""" main_uri = "https://tomato-timer.com/" timer_start = PageElement(css='button[id="timer_start"]') def start_pomodoro(self): self.get(self.main_uri) self.timer_start.click()
The script looks like this:
The final script is available at Day-to-Day Automation github repo directory
Script for creating new tab at firefox selenium driver:
- Python Selenium Open new tab/focus tab/close tab
- Enabled 'Play DRM' using selenium in Python
- Selenium Waits
- Firefox Profile manager
That's it :) Comment, share or don't :)
If you have any suggestions what I should blog about in the next articles - please give me a hint :)
See you in the next episode! Cheers!