Selenium系列(十六) - Web UI 自动化基础实战(3)

简介: Selenium系列(十六) - Web UI 自动化基础实战(3)

如果你还想从头学起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


image.png


代码思路


  1. 定位搜索框,输入python
  2. 点击【地区】
  3. 显式等待,定位所有默认已选中的城市
  4. 取消选中它们
  5. 点击【北京】
  6. 点击【确定】
  7. 点击【搜索】
  8. 定位职位列表,除了第一行
  9. 循环职位列表,获取每一行的信息存入列表
  10. 格式化输出

 

代码(人为测试时的操作步骤)


# !/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()
相关文章
|
1月前
|
数据采集 Web App开发 机器学习/深度学习
Selenium爬虫部署七大常见错误及修复方案:从踩坑到避坑的实战指南
本文揭秘Selenium爬虫常见“翻车”原因,涵盖浏览器闪退、元素定位失败、版本冲突、验证码识别等七大高频问题,结合实战案例与解决方案,助你打造稳定高效的自动化爬虫系统,实现从“能用”到“好用”的跨越。
383 0
|
11月前
|
数据采集 测试技术 Python
自动化淘宝秒杀:使用Selenium WebDriver的实战指南
本文详细介绍了如何利用Selenium WebDriver自动化淘宝秒杀操作,包括环境配置、代码实现及注意事项,旨在帮助读者提升秒杀成功率,同时提醒合理使用以遵守平台规则。
508 8
|
8月前
|
数据采集 Web App开发 存储
打造高效的Web Scraper:Python与Selenium的完美结合
本文介绍如何使用Python结合Selenium,通过代理IP、设置Cookie和User-Agent抓取BOSS直聘的招聘信息,包括公司名称、岗位、要求和薪资。这些数据可用于行业趋势、人才需求、企业动态及区域经济分析,为求职者、企业和分析师提供宝贵信息。文中详细说明了环境准备、代理配置、登录操作及数据抓取步骤,并提醒注意反爬虫机制和验证码处理等问题。
189 1
打造高效的Web Scraper:Python与Selenium的完美结合
|
9月前
|
人工智能 自然语言处理 API
UI-TARS:字节跳动开源专注于多平台 GUI 自动化交互的视觉语言模型
UI-TARS 是字节跳动推出的新一代原生图形用户界面(GUI)代理模型,支持跨平台自动化交互,具备强大的感知、推理、行动和记忆能力,能够通过自然语言指令完成复杂任务。
2413 16
UI-TARS:字节跳动开源专注于多平台 GUI 自动化交互的视觉语言模型
|
10月前
|
Web App开发 IDE JavaScript
Selenium IDE:Web自动化测试的得力助手
Selenium IDE:Web自动化测试的利器。作为开源工具,Selenium IDE支持录制与回放用户操作,适用于Chrome、Firefox等多浏览器,简化了测试流程,提升了效率,降低了自动化测试的门槛。它还支持导出多种编程语言的脚本,便于测试集成与复用。
296 31
Selenium IDE:Web自动化测试的得力助手
|
10月前
|
Web App开发 IDE 测试技术
Selenium:强大的 Web 自动化测试工具
Selenium 是一款强大的 Web 自动化测试工具,包括 Selenium IDE、WebDriver 和 Grid 三大组件,支持多种编程语言和跨平台操作。它能有效提高测试效率,解决跨浏览器兼容性问题,进行性能测试和数据驱动测试,尽管存在学习曲线较陡、不稳定等缺点,但其优势明显,是自动化测试领域的首选工具。
600 17
Selenium:强大的 Web 自动化测试工具
|
11月前
|
Java 测试技术 持续交付
【入门思路】基于Python+Unittest+Appium+Excel+BeautifulReport的App/移动端UI自动化测试框架搭建思路
本文重点讲解如何搭建App自动化测试框架的思路,而非完整源码。主要内容包括实现目的、框架设计、环境依赖和框架的主要组成部分。适用于初学者,旨在帮助其快速掌握App自动化测试的基本技能。文中详细介绍了从需求分析到技术栈选择,再到具体模块的封装与实现,包括登录、截图、日志、测试报告和邮件服务等。同时提供了运行效果的展示,便于理解和实践。
683 4
【入门思路】基于Python+Unittest+Appium+Excel+BeautifulReport的App/移动端UI自动化测试框架搭建思路
|
11月前
|
数据采集 Web App开发 前端开发
Python爬虫进阶:Selenium在动态网页抓取中的实战
【10月更文挑战第26天】动态网页抓取是网络爬虫的难点,因为数据通常通过JavaScript异步加载。Selenium通过模拟浏览器行为,可以加载和执行JavaScript,从而获取动态网页的完整内容。本文通过实战案例,介绍如何使用Selenium在Python中抓取动态网页。首先安装Selenium库和浏览器驱动,然后通过示例代码展示如何抓取英国国家美术馆的图片信息。
629 6
|
Web App开发 Java 测试技术
一、自动化:web自动化。Selenium 入门指南:从安装到实践
一、自动化:web自动化。Selenium 入门指南:从安装到实践
221 0
|
前端开发 测试技术 UED
【测试效率对比】深入分析:为何UI自动化测试的投资回报率通常低于接口自动化测试?
这篇文章深入分析了UI自动化测试与接口自动化测试的投资回报率(ROI)问题,指出UI自动化测试在某些情况下的ROI并不低,反驳了没有实施过UI自动化就轻易下结论的观点,并强调了实践的重要性和自动化测试在项目迭代中的作用。
337 1

热门文章

最新文章