Selenium系列(十六) - Web UI 自动化基础实战(3)
2020-04-04 15:18
1031 查看
如果你还想从头学起Selenium,可以看看这个系列的文章哦!
https://www.cnblogs.com/poloyy/category/1680176.html
其次,如果你不懂前端基础知识,需要自己去补充哦,博主暂时没有总结(虽然我也会,所以我学selenium就不用复习前端了哈哈哈...)
注意,目前的实战都是流水账式写的,后面才会结合框架+PO模式
目的是为了掌握所学的Selenium基础
实战题目
1、访问:http://www.51job.com
2、输入搜索关键词 "python", 地区选择 "北京"(注意,如果所在地已经选中其他地区,要去掉)
3、搜索最新发布的职位, 抓取页面信息。 得到如下的格式化信息
Python开发工程师 | 杭州纳帕科技有限公司 | 杭州 | 0.8-1.6万/月 | 04-27
Python高级开发工程师 | 中浙信科技咨询有限公司 | 杭州 | 1-1.5万/月 | 04-27
高级Python开发工程师 | 杭州新思维计算机有限公司 | 杭州-西湖区 | 1-1.5万/月 | 04-27
代码思路
- 定位搜索框,输入python
- 点击【地区】
- 显式等待,定位所有默认已选中的城市
- 取消选中它们
- 点击【北京】
- 点击【确定】
- 点击【搜索】
- 定位职位列表,除了第一行
- 循环职位列表,获取每一行的信息存入列表
- 格式化输出
代码(人为测试时的操作步骤)
# !/usr/bin/env python # -*- coding: utf-8 -*- """ __title__ = __Time__ = 2020/3/25 17:52 __Author__ = 小菠萝测试笔记 __Blog__ = https://www.cnblogs.com/poloyy/ """ from time import sleep from selenium import webdriver from selenium.webdriver.support.wait import WebDriverWait from selenium.webdriver.common.by import By # 设置元素等待实例,最多等10秒,每0.5秒查找一次 def wait_element(driver, by_, element_, timeout=10): element = WebDriverWait(driver=driver, timeout=timeout).until( lambda x: x.find_element(by=by_, value=element_) ) return element # 设置元素等待实例,最多等10秒,每0.5秒查找一次 def wait_elements(driver, by_, element_, timeout=10): element = WebDriverWait(driver=driver, timeout=timeout).until( lambda x: x.find_elements(by=by_, value=element_) ) return element # 加载驱动 driver = webdriver.Chrome("../resources/chromedriver.exe") # 打开网站 driver.get("http://www.51job.com") driver.maximize_window() # 搜索框 wait_element(driver, By.CSS_SELECTOR, "#kwdselectid").send_keys("python") # 地区按钮 wait_element(driver, By.CSS_SELECTOR, "#work_position_input").click() # 热门城市列表 city_lists = wait_elements(driver, By.CSS_SELECTOR, "div#work_position_click_center_right_list_000000 td em.on") # 选中北京,取消选中其他城市 for city in city_lists: sleep(1) city.click() wait_element(driver, By.CSS_SELECTOR, "em#work_position_click_center_right_list_category_000000_010000").click() # 确定按钮 driver.find_element_by_css_selector("#work_position_click_bottom_save").click() # 搜索按钮点击 wait_element(driver, By.CSS_SELECTOR, "div.top_wrap button").click() # 找到职位列表 lists = wait_elements(driver, By.CSS_SELECTOR, "div#resultList>div.el")[1:] for data in lists: spans = [i.text for i in data.find_elements_by_css_selector("span")] print(" | ".join(spans)) sleep(10) # 退出浏览器 driver.quit()
相关文章推荐
- Selenium系列(十四) - Web UI 自动化基础实战(1)
- Selenium2 Python 自动化测试实战学习笔记(四)
- Hadoop大数据零基础高端实战培训系列课程分享(全面)
- CSDN日报191120:《吊打面试官》系列-消息队列基础;Vue + Spring Boot 项目实战
- Selenium2 Python 自动化测试实战学习笔记(三)
- 《手把手教你》系列进阶篇之1-python+ selenium自动化测试 - python基础扫盲(详细教程)
- 基于PaddlePaddle的图像分类实战 | 深度学习基础任务教程系列(一)
- [C# 基础知识系列]专题十六:Linq介绍
- CrazyWing:Python自动化运维开发实战 十六、Python正则表达式
- [C# 基础知识系列]专题十六:Linq介绍
- 基于《Selenium 2自动化测试实战》的学习笔记(2)—— 适合自动化测试的项目及自动化测试工具简介
- Selenium2学习-036-WebUI自动化实战实例-034-JavaScript 在 Selenium 自动化中的应用实例之六(获取 JS 执行结果返回值)
- Selenium2+python自动化系列1-环境搭建
- Selenium2学习-013-WebUI自动化实战实例-011-WebElement.getText()值为空问题探索及解决
- Selenium3与Python3实战Web自动化测试框架
- selenium+testng+gitblit+jenkins+ant自动化测试系列二:gitblit基础配置
- 【自动化测试技术QTP基础系列四】---深入探讨录制回放原理
- Selenium2 Python 自动化测试实战学习笔记(二)
- Selenium基于Python web自动化基础一 -- 基础汇总及简单操作
- 运维与自动化系列④自动化部署基础与git