Cloud testing platforms (BrowserStack, Sauce Labs) in Selenium Python - Build an Automation Script
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 # BrowserStack credentials and URL BROWSERSTACK_USERNAME = 'your_username' BROWSERSTACK_ACCESS_KEY = 'your_access_key' remote_url = f'https://{BROWSERSTACK_USERNAME}:{BROWSERSTACK_ACCESS_KEY}@hub-cloud.browserstack.com/wd/hub' # Desired capabilities for Windows 10 and Chrome latest desired_cap = { 'os': 'Windows', 'os_version': '10', 'browserName': 'Chrome', 'browser_version': 'latest', 'name': 'Login Test on BrowserStack' } try: driver = webdriver.Remote( command_executor=remote_url, desired_capabilities=desired_cap ) wait = WebDriverWait(driver, 15) # Navigate to login page driver.get('https://example.testapp.com/login') # Wait for email field and enter email email_field = wait.until(EC.presence_of_element_located((By.ID, 'email'))) email_field.send_keys('testuser@example.com') # Wait for password field and enter password password_field = wait.until(EC.presence_of_element_located((By.ID, 'password'))) password_field.send_keys('TestPass123') # Wait for login button to be clickable and click login_button = wait.until(EC.element_to_be_clickable((By.ID, 'loginBtn'))) login_button.click() # Wait until URL contains '/dashboard' wait.until(EC.url_contains('/dashboard')) # Assertion: Verify URL contains '/dashboard' assert '/dashboard' in driver.current_url, 'Login failed or dashboard not loaded' finally: driver.quit()
This script uses Selenium WebDriver with Python to run a test on BrowserStack cloud platform.
First, it sets up the remote WebDriver with BrowserStack credentials and desired capabilities for Windows 10 and Chrome latest.
It opens the login page URL, waits explicitly for the email and password fields to be present, then inputs the test credentials.
It waits for the login button to be clickable before clicking it.
After clicking, it waits until the URL contains '/dashboard' to confirm successful login.
Finally, it asserts that the URL contains '/dashboard' to verify the test passed.
The driver is quit in a finally block to ensure the browser session closes even if errors occur.
Now add data-driven testing with 3 different sets of login credentials to verify login success or failure.