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

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

如果你还想从头学起Selenium,可以看看这个系列的文章哦!

https://www.cnblogs.com/poloyy/category/1680176.html

 

其次,如果你不懂前端基础知识,需要自己去补充哦,博主暂时没有总结(虽然我也会,所以我学selenium就不用复习前端了哈哈哈...)

 

注意,目前的实战都是流水账式写的,后面才会结合框架+PO模式

目的是为了掌握所学的Selenium基础

 

实战题目


  1. 打开 12306 网站 https://kyfw.12306.cn/otn/leftTicket/init
  2. 出发城市 填写 ‘南京南’, 到达城市 填写 ‘杭州东'
  3. 发车时间 选 06:00--12:00
  4. 发车日期选当前时间的下一天,也就是日期标签栏的,第二个标签
  5. 我们要查找的是所有 二等座还有票的车次,打印出这些有票的车次的信息,结果如下:

G7641

G1505

G7393

G7689

image.png


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


  1. 点击【出发城市】,输入并点击南京南
  2. 点击【到达城市】,输入并点击杭州东
  3. 选择发车时间 06:00--12:00
  4. 选择第二个日期标签
  5. 获取到车次列表
  6. 循环列表,获取车次号和二等座那一列的数据
  7. 正则匹配是否有坐
  8. 输出车次号

 

代码


#!/usr/bin/env python
# -*- coding: utf-8 -*-
"""
__title__  =
__Time__   = 2020-03-31 21:30
__Author__ = 小菠萝测试笔记
__Blog__   = https://www.cnblogs.com/poloyy/
"""
import re
from time import sleep
from selenium.webdriver.support.select import Select
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support import expected_conditions as ec
from selenium.webdriver.support.wait import WebDriverWait
driver = webdriver.Chrome("../resources/chromedriver.exe")
def wait_element(by_, element_):
    element = WebDriverWait(driver, timeout=10).until(
        ec.presence_of_element_located((by_, element_))
    )
    return element
def wait_elements(by_, element_):
    element = WebDriverWait(driver, timeout=10).until(
        ec.presence_of_all_elements_located((by_, element_))
    )
    return element
# 打开网站
driver.get("https://kyfw.12306.cn/otn/leftTicket/init")
driver.maximize_window()
# 出发城市 填写 ‘南京南’,
from_ = wait_element(By.CSS_SELECTOR, "input#fromStationText")
from_.click()
from_.send_keys("南京南")
# 选择南京南
driver.find_element_by_css_selector("div#citem_0").click()
# 到达城市 填写 ‘杭州东’
to = wait_element(By.CSS_SELECTOR, "input#toStationText")
to.click()
to.send_keys("杭州东")
# 选择杭州东
driver.find_element_by_css_selector("div#citem_0").click()
# 发车时间 选 06:00--12:00
select = Select(driver.find_element_by_css_selector("select#cc_start_time"))
# 选择
select.select_by_visible_text("06:00--12:00")
# 发车日期选当前时间的下一天,也就是日期标签栏的,第二个标签
date_range = driver.find_elements_by_css_selector("div#date_range>ul>li")
date_range[1].click()
# 数据列表
lists = wait_elements(By.CSS_SELECTOR, "tbody#queryLeftTable>tr")[0::2]
print(len(lists))
#  循环数据
for data in lists:
    number = data.find_element_by_css_selector("td>div>div.train a.number").text
    two = data.find_elements_by_css_selector("td")[3].text
    if re.findall("有|\d+", two):
        print(number)
sleep(10)
driver.quit()
相关文章
|
3天前
|
数据采集 Web App开发 API
FastAPI与Selenium:打造高效的Web数据抓取服务 —— 采集Pixabay中的图片及相关信息
本文介绍了如何使用FastAPI和Selenium搭建RESTful接口,访问免版权图片网站Pixabay并采集图片及其描述信息。通过配置代理IP、User-Agent和Cookie,提高爬虫的稳定性和防封禁能力。环境依赖包括FastAPI、Uvicorn和Selenium等库。代码示例展示了完整的实现过程,涵盖代理设置、浏览器模拟及数据提取,并提供了详细的中文注释。适用于需要高效、稳定的Web数据抓取服务的开发者。
36 15
FastAPI与Selenium:打造高效的Web数据抓取服务 —— 采集Pixabay中的图片及相关信息
|
4月前
|
Web App开发 前端开发 JavaScript
探索Python科学计算的边界:利用Selenium进行Web应用性能测试与优化
【10月更文挑战第6天】随着互联网技术的发展,Web应用程序已经成为人们日常生活和工作中不可或缺的一部分。这些应用不仅需要提供丰富的功能,还必须具备良好的性能表现以保证用户体验。性能测试是确保Web应用能够快速响应用户请求并处理大量并发访问的关键步骤之一。本文将探讨如何使用Python结合Selenium来进行Web应用的性能测试,并通过实际代码示例展示如何识别瓶颈及优化应用。
214 5
|
2月前
|
Web App开发 IDE JavaScript
Selenium IDE:Web自动化测试的得力助手
Selenium IDE:Web自动化测试的利器。作为开源工具,Selenium IDE支持录制与回放用户操作,适用于Chrome、Firefox等多浏览器,简化了测试流程,提升了效率,降低了自动化测试的门槛。它还支持导出多种编程语言的脚本,便于测试集成与复用。
137 31
Selenium IDE:Web自动化测试的得力助手
|
2月前
|
Web App开发 IDE 测试技术
Selenium:强大的 Web 自动化测试工具
Selenium 是一款强大的 Web 自动化测试工具,包括 Selenium IDE、WebDriver 和 Grid 三大组件,支持多种编程语言和跨平台操作。它能有效提高测试效率,解决跨浏览器兼容性问题,进行性能测试和数据驱动测试,尽管存在学习曲线较陡、不稳定等缺点,但其优势明显,是自动化测试领域的首选工具。
248 17
Selenium:强大的 Web 自动化测试工具
|
3月前
|
数据采集 Web App开发 前端开发
Python爬虫进阶:Selenium在动态网页抓取中的实战
【10月更文挑战第26天】动态网页抓取是网络爬虫的难点,因为数据通常通过JavaScript异步加载。Selenium通过模拟浏览器行为,可以加载和执行JavaScript,从而获取动态网页的完整内容。本文通过实战案例,介绍如何使用Selenium在Python中抓取动态网页。首先安装Selenium库和浏览器驱动,然后通过示例代码展示如何抓取英国国家美术馆的图片信息。
171 6
|
3月前
|
Web App开发 设计模式 JavaScript
自动化测试之美:如何利用Selenium实现Web应用的高效测试
【10月更文挑战第29天】在软件开发的世界中,测试是确保产品质量的关键步骤。本文将带你了解如何使用Selenium这一强大的自动化测试工具,提高Web应用测试的效率和准确性。通过实际案例,我们将探索Selenium的核心功能及其在现代软件开发中的应用,旨在帮助读者掌握自动化测试的精髓,从而提升软件测试工作的整体效能。
77 0
|
4月前
|
Web App开发 Java 测试技术
一、自动化:web自动化。Selenium 入门指南:从安装到实践
一、自动化:web自动化。Selenium 入门指南:从安装到实践
75 0
|
6月前
|
开发框架 JavaScript 前端开发
Web Component -- 即将爆发的原生的 UI 组件化标准
Web Component -- 即将爆发的原生的 UI 组件化标准
|
6月前
|
vr&ar C# 图形学
WPF与AR/VR的激情碰撞:解锁Windows Presentation Foundation应用新维度,探索增强现实与虚拟现实技术在现代UI设计中的无限可能与实战应用详解
【8月更文挑战第31天】增强现实(AR)与虚拟现实(VR)技术正迅速改变生活和工作方式,在游戏、教育及工业等领域展现出广泛应用前景。本文探讨如何在Windows Presentation Foundation(WPF)环境中实现AR/VR功能,通过具体示例代码展示整合过程。尽管WPF本身不直接支持AR/VR,但借助第三方库如Unity、Vuforia或OpenVR,可实现沉浸式体验。例如,通过Unity和Vuforia在WPF中创建AR应用,或利用OpenVR在WPF中集成VR功能,从而提升用户体验并拓展应用功能边界。
128 1
|
6月前
|
Web App开发 测试技术 API
自动化测试之美:使用Selenium和Python进行Web应用测试
【8月更文挑战第31天】在软件开发的快节奏世界中,自动化测试如同一束明灯,照亮了质量保证之路。本文将引导你通过Selenium和Python的强大组合,探索如何构建高效的Web应用测试框架。我们不仅会讨论理论,还会深入代码,从一个简单的示例开始,逐步扩展至更复杂的场景。无论你是初学者还是有经验的开发者,这篇文章都将为你提供宝贵的见解和实用的技巧。让我们一同揭开自动化测试的神秘面纱,体验它的魅力所在。

热门文章

最新文章