
任务1打开百度搜索“地球”启动Chrome打开https://www.baidu.com。用 find_element 定位到搜索框ID或Name输入“地球”。定位“百度一下”按钮点击。driver webdriver.Chrome(serviceService(./chromedriver.exe)) driver.get(https://www.baidu.com) wait WebDriverWait(driver, 10) wait.until(EC.element_to_be_clickable((By.ID, chat-textarea))).send_keys(地球) driver.find_element(By.ID, chat-submit-button).click() input(按任意键继续...)任务2登录一个测试网站45分钟推荐练习站 搜“Selenium 练习网站”或直接用 https://practicetestautomation.com/practice-test-login/ 一个专门用来练登录的。定位用户名框、密码框、登录按钮执行登录。登录成功后找到页面上的“Log out”按钮或某个成功提示文本打印出来。在这里你会遇到等待的痛点登录按钮点了之后页面会跳转如果你不等下一个元素就找不到。试着用显式等待解决。driver webdriver.Chrome(serviceService(./chromedriver.exe)) driver.get(https://practicetestautomation.com/practice-test-login/) driver.find_element(By.ID, username).send_keys(student) driver.find_element(By.ID, password).send_keys(Password123) driver.find_element(By.ID, submit).click() wait WebDriverWait(driver, 10) text wait.until(EC.element_to_be_clickable((By.XPATH, //*[idloop-container]/div/article/div[2]/div/div/div/a))).text print(text) input(按任意键继续...)任务3带数据驱动的登录测试升级90分钟推荐练习站 搜“Selenium 练习网站”或直接用 https://practicetestautomation.com/practice-test-login/ 一个专门用来练登录的。创建一个CSV或Excel文件里面有多组用户名和密码包括正确的和错误的。写一个循环从文件里读取每组数据执行登录然后根据预期结果成功或失败判断测试是否通过并用Python的print输出结果。这是你简历上第一个“自动化测试框架”的雏形非常重要。表格数据def get_data_from_excel(file_path): wb openpyxl.load_workbook(file_path) sheet wb.active data [] for row in sheet.iter_rows(min_row2, values_onlyTrue): data.append(row) return data def test_login(username, password): WebDriverWait(driver, 5).until(EC.element_to_be_clickable((By.ID, username))).send_keys(username) driver.find_element(By.ID, password).send_keys(password) driver.find_element(By.ID, submit).click() try: WebDriverWait(driver,5).until(EC.element_to_be_clickable((By.XPATH, //*[idloop-container]/div/article/div[2]/div/div/div/a))) except TimeoutException: return False else: return True driver webdriver.Chrome(serviceService(./chromedriver.exe)) driver.get(https://practicetestautomation.com/practice-test-login/) data get_data_from_excel(./testdata.xlsx) for username, password in data: login_success test_login(username, password) if login_success: driver.back() print(fusername {username}password {password}登录成功) else: print(fusername {username}password {password}登录失败) input(按任意键继续...)任务4选做进阶使用Page Object模式重构把任务3转换成Page Object 设计模式。很简单就是把“一个页面的所有元素定位和操作”封装成一个类测试脚本只调用类的方法看起来特别清晰易维护。这个模式你只要在面试中能讲出它的好处就能秒杀很多竞争者:好维护页面元素变了只用改对应的页面对象类不用改所有测试用例 。能复用同一个页面的操作方法可以被多个测试用例重复调用减少重复代码 。看得懂测试用例里全是业务语言不像以前那样夹杂大量技术代码逻辑更清晰class PageLogin: #页面网址 URL https://practicetestautomation.com/practice-test-login/ #元素定位器 USERNAME_INPUT (By.ID, username) PASSWORD_INPUT (By.ID, password) LOGIN_CLICK (By.ID, submit) SUCCESS_FLAG (By.XPATH, //*[idloop-container]/div/article/div[2]/div/div/div/a) #初始化driver def __init__(self, driver): self.driver driver #进入网站 def open(self): self.driver.get(self.URL) #输入账户 def username_enter(self, username): WebDriverWait(self.driver, 5).until(EC.element_to_be_clickable(self.USERNAME_INPUT)).send_keys(username) #输入密码 def password_enter(self, password): self.driver.find_element(*self.PASSWORD_INPUT).send_keys(password) #点击登录按钮 def login_click(self): self.driver.find_element(*self.LOGIN_CLICK).click() #登录 def test_login(self,username, password): self.username_enter(username) self.password_enter(password) self.login_click() try: WebDriverWait(self.driver, 5).until(EC.element_to_be_clickable(self.SUCCESS_FLAG)) except TimeoutException: return False else: return True def get_data_from_excel(file_path): wb openpyxl.load_workbook(file_path) sheet wb.active data [] for row in sheet.iter_rows(min_row2, values_onlyTrue): data.append(row) return data driver webdriver.Chrome(serviceService(./chromedriver.exe)) pagelogin PageLogin(driver) pagelogin.open() data get_data_from_excel(testdata.xlsx) for username, password in data: result pagelogin.test_login(username, password) if result: driver.back() print(fusername {username}password {password}登录成功) else: print(fusername {username}password {password}登录失败) input(按任意键继续...)