Best Python code snippet using SeleniumBase
katgui_tour.py
Source: katgui_tour.py
1import os2from seleniumbase import BaseCase3from .utils import TexttoSpeech4KATGUI_USER = os.getenv("KATGUI_USER")5KATGUI_PASS = os.getenv("KATGUI_PASS")6THEME = "dark"7KATGUI_URL = "http://monctl.devx.camlab.kat.ac.za/katgui/login"8class MyTourClass(BaseCase):9 speak = TexttoSpeech10 def enter_stage(self, func, *args: str, **kwargs: str) -> None:11 """Wrapper function for creating and playing the tour"""12 self.create_tour(theme=THEME)13 func(*args, **kwargs)14 self.play_tour()15 def login_katgui(self) -> None:16 """Detailed login in instructions for KATGUI end-user."""17 self.open(KATGUI_URL)18 self.wait_for_element("#input_1")19 self.speak(20 "Welcome to the Karoo Array Telescope Graphical User Interface, "21 "I will walk you through it!",22 "walkthrough",23 ).play_speech()24 self.enter_stage(25 self.add_tour_step, "Welcome to KATGUI!", title="MeerKAT KatGUI"26 )27 self.enter_stage(28 self.add_tour_step, "Type in your email account here.", "#input_1"29 )30 self.speak(31 "Please enter your S K A email address to login.", "enter_email"32 ).play_speech()33 self.assertIsNotNone(34 KATGUI_USER,35 "Ensure that KATGUI_USER as defined an environmental variables.",36 )37 self.highlight_update_text("#input_1", KATGUI_USER)38 self.assertIsNotNone(39 KATGUI_PASS,40 "Ensure that KATGUI_PASS as defined an environmental variables.",41 )42 self.enter_stage(self.add_tour_step, "Type in your password here.", "#input_2")43 self.speak("Please enter your password!", "enter_pass").play_speech()44 self.highlight_update_text("#input_2", KATGUI_PASS)45 self.speak(46 "In order to have full control of the interface, "47 "you will need to login as an Expert User!",48 "expert_user",49 ).play_speech()50 self.enter_stage(51 self.add_tour_step, "Login as 'Expert User'.", "#select_value_label_0"52 )53 self.click("#select_value_label_0")54 self.click("#select_option_6")55 self.speak(56 "Click login button or hit Enter on your keyboard to login!", "login",57 ).play_speech()58 selector = "#ui-view-container-div > div > form > button"59 self.enter_stage(self.add_tour_step, "Then click to 'Login'.", selector)60 self.enter_stage(self.add_tour_step, "Or press [ENTER] after entry.", selector)61 self.click(selector)62 def disable_alarms(self):63 self.enter_stage(64 self.add_tour_step,65 "You might need to disable the alarms and notification.",66 title="Disable Alarms",67 )68 user_icon = "#main-top-toolbar > div > button:nth-child(7) > span"69 self.enter_stage(70 self.add_tour_step, "Click on the user icon on the top-right.", user_icon71 )72 self.click(user_icon)73 alarm_not = (74 "body > md-content > md-sidenav.md-sidenav-right._md.md-deep-"75 "purple-theme.layout-column > md-content > md-list > md-item:nth-child(5) > "76 "md-item-content:nth-child(2) > md-checkbox > div.md-label"77 )78 self.enter_stage(79 self.add_tour_step,80 "Click on the checkbox to disable 'Alarm Notifications'.",81 alarm_not,82 )83 self.click(alarm_not)84 alarm_sound = (85 "body > md-content > md-sidenav.md-sidenav-right._md.md-deep-purple-theme."86 "layout-column > md-content > md-list > md-item:nth-child(5) > "87 "md-item-content:nth-child(4) > md-checkbox > div.md-container.md-ink-ripple"88 )89 self.enter_stage(90 self.add_tour_step,91 "Click on the checkbox to disable 'Alarm Sounds'.",92 alarm_sound,93 )94 self.click(alarm_sound)95 home = '//*[@id="main-top-toolbar"]/div/span'96 self.enter_stage(97 self.add_tour_step,98 "Click anywhere on the page to exit the configuration menu.",99 home,100 )101 self.refresh_page()102 def create_subarray(self):103 self.enter_stage(104 self.add_tour_step,105 "Let us create a simple subarray containing 4 antennas, CBF and SDP.",106 title="Create a subarray",107 )108 subarray = '//*[@id="ui-view-container-div"]/div/div[1]/div/div[1]/div/button[1]'109 self.click(subarray)110 def test_katgui_tour(self) -> None:111 """KATGUI Tour/Demonstration"""112 self.login_katgui()113 self.disable_alarms()...
tour.py
Source: tour.py
...3 def test_google_tour(self):4 self.open("https://cellardoor.info")5 self.wait_for_element('span[class="block text-emerald-600 xl:inline"]')6 self.create_tour(theme="introjs")7 self.add_tour_step("Platform de gestion de flotte")8 self.add_tour_step("Pour se connecter", 'a[href="/login"]')9 self.play_tour()10 11 self.click('a[href="/login"]')12 self.wait_for_element("#email")13 14 self.create_tour(theme="introjs")15 self.add_tour_step("On va se connecter en tant que gestionnaire")16 self.add_tour_step("Identifiants : Email", 'input[id="email"]')17 self.play_tour()18 19 self.create_tour(theme="introjs")20 self.type("#email", "gestionnaire@emsi.ma")21 self.add_tour_step("Identifiants : Mot de passe", 'input[id="password"]')22 self.play_tour()23 self.type("#password", "azerty")24 25 self.create_tour(theme="introjs")26 self.click('button[type="submit"]')27 self.wait_for_element('p[class="block px-3 py-2 rounded-md text-base font-medium text-gray-700"]')28 self.add_tour_step("Infos : Nom complet de l'utilisateur et son role", 'p[class="block px-3 py-2 rounded-md text-base font-medium text-gray-700"]')29 self.add_tour_step("Cout des pannes par Km", 'img[src="/data/cout_reparations_par_km.png"]')30 self.add_tour_step("Cout des amendes par Km", 'img[src="/data/cout_amendes_par_km.png"]')31 self.add_tour_step("Total frais voyages par année", 'img[src="/data/frais_voyages_par_annee.png"]')32 self.add_tour_step("Pourcentage des vehicules en panne", 'img[src="/data/vehicules_en_panne.png"]')33 self.add_tour_step("Données des voyages", 'a[class="block px-3 py-2 rounded-md text-base font-medium text-gray-700 hover:text-gray-900"]')34 self.play_tour()35 36 self.create_tour(theme="introjs")37 self.click('a[href="/dashboard/voyages"]')38 self.wait_for_element('h1[class="text-3xl mx-4"]')39 self.add_tour_step("Ajouter un voyage", 'a[href="/dashboard/voyages/create"]')40 self.add_tour_step("Rechercher un voyage", 'input[class="border px-2 w-1/4 rounded-lg"]')41 self.add_tour_step("Actions possibles pour un voyage", 'td[class="flex py-4 justify-center"]')42 self.play_tour()43 44 self.create_tour(theme="introjs")45 self.click('a[href="/dashboard/users"]')46 self.wait_for_element('h1[class="text-3xl mx-4"]')47 self.add_tour_step("Gestion des Utilisateurs : Chauffeurs, Gestionnaires, Collaborateurs", 'h1[class="text-3xl mx-4"]')48 self.play_tour()49 50 self.create_tour(theme="introjs")51 self.click('a[href="/dashboard/vehicules"]')52 self.wait_for_element('h1[class="text-3xl mx-4"]')53 self.add_tour_step("Gestion des Vehicules", 'h1[class="text-3xl mx-4"]')54 self.add_tour_step("Se déconnecter", 'button[class="block px-3 py-2 rounded-md text-base font-medium text-gray-700 hover:text-gray-900"]')55 self.play_tour()56 57 self.create_tour(theme="introjs")58 self.click('button[class="block px-3 py-2 rounded-md text-base font-medium text-gray-700 hover:text-gray-900"]')59 self.wait_for_element('img[class="h-8 w-auto sm:h-10"]')60 self.click('a[href="/login"]')61 self.wait_for_element("#email")62 self.create_tour(theme="introjs")63 self.add_tour_step("On va se connecter en tant que chauffeur")64 self.add_tour_step("Identifiants : Email", 'input[id="email"]')65 self.play_tour()66 67 self.create_tour(theme="introjs")68 self.type("#email", "chauffeur@emsi.ma")69 self.add_tour_step("Identifiants : Mot de passe", 'input[id="password"]')70 self.play_tour()71 self.type("#password", "azerty")72 73 self.create_tour(theme="introjs")74 self.click('button[type="submit"]')75 self.wait_for_element('p[class="block px-3 py-2 rounded-md text-base font-medium text-gray-700"]')76 self.add_tour_step("Infos : Nom Chauffeur et son role", 'p[class="block px-3 py-2 rounded-md text-base font-medium text-gray-700"]')77 self.add_tour_step("Voyages du chauffeur", 'h1[class="text-3xl mx-4"]')78 self.add_tour_step("Se déconnecter", 'button[class="block px-3 py-2 rounded-md text-base font-medium text-gray-700 hover:text-gray-900"]')...
bootstrap_google_tour.py
Source: bootstrap_google_tour.py
...3 def test_google_tour(self):4 self.open('https://google.com')5 self.wait_for_element('input[title="Search"]')6 self.create_bootstrap_tour() # OR self.create_tour(theme="bootstrap")7 self.add_tour_step(8 "Click to begin the Google Tour!", title="SeleniumBase Tours")9 self.add_tour_step(10 "Type in your search query here.", 'input[title="Search"]')11 self.play_tour()12 self.highlight_update_text('input[title="Search"]', "Google")13 self.wait_for_element('[role="listbox"]') # Wait for autocomplete14 self.create_bootstrap_tour()15 self.add_tour_step(16 "Then click here to search.", 'input[value="Google Search"]')17 self.add_tour_step(18 "Or press [ENTER] after typing a query here.", '[title="Search"]')19 self.play_tour()20 self.highlight_update_text('input[title="Search"]', "GitHub\n")21 self.wait_for_element("#search")22 self.create_bootstrap_tour()23 self.add_tour_step(24 "Search results appear here!", title="(5-second autoplay on)")25 self.add_tour_step("Let's take another tour:")26 self.play_tour(interval=5) # Tour automatically continues after 5 sec27 self.open("https://www.google.com/maps/@42.3598616,-71.0912631,15z")28 self.wait_for_element('input#searchboxinput')29 self.create_bootstrap_tour()30 self.add_tour_step("Welcome to Google Maps!")31 self.add_tour_step(32 "Type in a location here.", "#searchboxinput", title="Search Box")33 self.add_tour_step(34 "Then click here to show it on the map.",35 "#searchbox-searchbutton", alignment="bottom")36 self.add_tour_step(37 "Or click here to get driving directions.",38 "#searchbox-directions", alignment="bottom")39 self.add_tour_step(40 "Use this button to switch to Satellite view.",41 "div.widget-minimap", alignment="right")42 self.add_tour_step(43 "Click here to zoom in.", "#widget-zoom-in", alignment="left")44 self.add_tour_step(45 "Or click here to zoom out.", "#widget-zoom-out", alignment="left")46 self.add_tour_step(47 "Use the Menu button to see more options.",48 ".searchbox-hamburger-container", alignment="right")49 self.add_tour_step(50 "Or click here to see more Google apps.", '[title="Google apps"]',51 alignment="left")52 self.add_tour_step(53 "Thanks for trying out SeleniumBase Tours!",54 title="End of Guided Tour")...
Check out the latest blogs from LambdaTest on this topic:
The QA testing profession requires both educational and long-term or experience-based learning. One can learn the basics from certification courses and exams, boot camp courses, and college-level courses where available. However, developing instinctive and practical skills works best when built with work experience.
Ever since the Internet was invented, web developers have searched for the most efficient ways to display content on web browsers.
In general, software testers have a challenging job. Software testing is frequently the final significant activity undertaken prior to actually delivering a product. Since the terms “software” and “late” are nearly synonymous, it is the testers that frequently catch the ire of the whole business as they try to test the software at the end. It is the testers who are under pressure to finish faster and deem the product “release candidate” before they have had enough opportunity to be comfortable. To make matters worse, if bugs are discovered in the product after it has been released, everyone looks to the testers and says, “Why didn’t you spot those bugs?” The testers did not cause the bugs, but they must bear some of the guilt for the bugs that were disclosed.
Xamarin is an open-source framework that offers cross-platform application development using the C# programming language. It helps to simplify your overall development and management of cross-platform software applications.
When software developers took years to create and introduce new products to the market is long gone. Users (or consumers) today are more eager to use their favorite applications with the latest bells and whistles. However, users today don’t have the patience to work around bugs, errors, and design flaws. People have less self-control, and if your product or application doesn’t make life easier for users, they’ll leave for a better solution.
Learn to execute automation testing from scratch with LambdaTest Learning Hub. Right from setting up the prerequisites to run your first automation test, to following best practices and diving deeper into advanced test scenarios. LambdaTest Learning Hubs compile a list of step-by-step guides to help you be proficient with different test automation frameworks i.e. Selenium, Cypress, TestNG etc.
You could also refer to video tutorials over LambdaTest YouTube channel to get step by step demonstration from industry experts.
Get 100 minutes of automation test minutes FREE!!