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

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

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

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

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

实战题目

  1. 访问: https://www.vmall.com/
  2. 获取一级菜单下包含哪些二级菜单,不包含查看全部
  3. 然后获取下面,热销单品中所有 顶部 带有 爆款字样的产品名称及价格

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

  1. 定位一级菜单的选项列表
  2. 循环列表,每次都将鼠标悬浮在当前选项上,然后打印二级菜单的列表
  3. 热销单品在页面下方,需要滑动页面
  4. 定位热销单品列表
  5. 循环,获取标题和价格,打印爆款

代码

#!/usr/bin/env python
# -*- coding: utf-8 -*- """
__title__ =
__Time__ = 2020/4/2 20:04
__Author__ = 小菠萝测试笔记
__Blog__ = https://www.cnblogs.com/poloyy/
"""
from time import sleep 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
from selenium.webdriver.common.action_chains import ActionChains driver = webdriver.Chrome("../resources/chromedriver.exe")
action = ActionChains(driver) 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://www.vmall.com/") # 列表
lists = wait_elements(By.XPATH, '//div[@id="category-block"]/div/ol/li')
for one in lists:
one_v = one.find_element_by_xpath("./input[2]").get_attribute("value") print(f"一级菜单:{one_v}")
# hover
action.move_to_element(one).perform() # hover出来的面板
items = one.find_elements_by_xpath('./div[contains(@class,"category-panels")]/ul/li[@class="subcate-item"]')
for item in items:
value = item.find_element_by_xpath('./input[1]').get_attribute("value")
print(f"\t{value}") # 往下滚动1000px
js = "document.documentElement.scrollTop = 1000"
driver.execute_script(js) # 打印爆款
hot_lists = driver.find_elements_by_xpath(
'//div[contains(@class,"home-hot-goods")]//ul[@class="grid-list clearfix"]/li')
for hot in hot_lists:
title = hot.find_element_by_xpath('./a/div[@class="grid-title"]')
price = hot.find_element_by_xpath('./a/p[@class="grid-price"]')
print(f"爆款:{title.text}, 价格:{price.text}") sleep(5)
driver.quit()

Selenium系列(十九) - Web UI 自动化基础实战(6)的更多相关文章

  1. selenium(12)-web UI自动化项目实战(PO模式,代码封装)

    web UI自动化项目实战-项目 项目使用禅道,所以你需要搭建1个禅道,搭建禅道的方法和步骤见 https://www.cnblogs.com/xinhua19/p/13151296.html 搭建U ...

  2. Selenium系列(十四) - Web UI 自动化基础实战(1)

    如果你还想从头学起Selenium,可以看看这个系列的文章哦! https://www.cnblogs.com/poloyy/category/1680176.html 其次,如果你不懂前端基础知识, ...

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

    如果你还想从头学起Selenium,可以看看这个系列的文章哦! https://www.cnblogs.com/poloyy/category/1680176.html 其次,如果你不懂前端基础知识, ...

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

    如果你还想从头学起Selenium,可以看看这个系列的文章哦! https://www.cnblogs.com/poloyy/category/1680176.html 其次,如果你不懂前端基础知识, ...

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

    如果你还想从头学起Selenium,可以看看这个系列的文章哦! https://www.cnblogs.com/poloyy/category/1680176.html 其次,如果你不懂前端基础知识, ...

  6. Selenium系列(十七) - Web UI 自动化基础实战(4)

    如果你还想从头学起Selenium,可以看看这个系列的文章哦! https://www.cnblogs.com/poloyy/category/1680176.html 其次,如果你不懂前端基础知识, ...

  7. Web 前端开发精华文章集锦(jQuery、HTML5、CSS3)【系列十九】

    <Web 前端开发精华文章推荐>2013年第七期(总第十九期)和大家见面了.梦想天空博客关注 前端开发 技术,分享各种增强网站用户体验的 jQuery 插件,展示前沿的 HTML5 和 C ...

  8. 任务三十九:UI组件之冻结行列表格

    任务三十九:UI组件之冻结行列表格 面向人群: 有一定JavaScript基础 难度: 中 重要说明 百度前端技术学院的课程任务是由百度前端工程师专为对前端不同掌握程度的同学设计.我们尽力保证课程内容 ...

  9. Python Selenium 搭建Web UI自动化

    Python搭建UI自动化环境 下载Python3 Python官网 PyCharm 环境配置 安装Python 勾选Add Python to PATH,一直下一步. 验证:CMD输入Python ...

随机推荐

  1. Docker介绍及安装详解

    1:Docker简介 Docker 是一种运行于 Linux 和 Windows 上的软件,用于创建.管理和编排容器.Docker 是在 GitHub 上开发的 Moby 开源项目的一部分.Docke ...

  2. .net 知新:【4】NuGet简介和使用

    在包管理以前我们在项目中引用第三方包通常是去下载dll放到项目中再引用,后来逐渐发展成各种包管理工具,nuget就是一种工具,适用于任何现代开发平台的基本工具可充当一种机制,通过这种机制,开发人员可以 ...

  3. 身边好几个技术一般的程序员都面上了,阿里P7门槛降低?

    经常在网上的论坛里看到讨论程序员的级别,尤其在跳槽类的信息里可以看到对标阿里P7,百度T6,腾讯3.1等字眼,似乎大厂的级别俨然可以成为业内的通用货币,类似于高考分数一样,哪一档就对应着什么样的待遇. ...

  4. Linux进程理解与实践(二)僵尸&孤儿进程 和文件共享

    孤儿进程与僵尸进程 孤儿进程: 如果父进程先退出,子进程还没退出那么子进程的父进程将变为init进程.(注:任何一个进程都必须有父进程) [cpp] view plaincopy #include & ...

  5. windows的自动登录和隐藏用户

    Launch Regedit. #r -> regedit 1. Navigate to: HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\Cu ...

  6. 【笔记】sklearn中的SVM以及使用多项式特征以及核函数

    sklearn中的SVM以及使用多项式特征以及核函数 sklearn中的SVM的使用 SVM的理论部分 需要注意的是,使用SVM算法,和KNN算法一样,都是需要做数据标准化的处理才可以,因为不同尺度的 ...

  7. Windows内核基础知识-2-段描述符

    Windows内核基础知识-2-段描述符 比如: ES 002B 0(FFFFFFFF) 意思就是es段寄存器,段选择子/段选择符 为002B, 起始地址base为0, 限制范围Limit地址最大能寻 ...

  8. SQL 练习6

    查询在 SC 表存在成绩的学生信息 SELECT * from Student WHERE SId in (SELECT SId from SC)

  9. 《手把手教你》系列技巧篇(二十)-java+ selenium自动化测试-元素定位大法之终卷(详细教程)

    1.简介 这篇文章主要是对前边的文章中的一些总结和拓展.本来是不打算写着一篇的,但是由于前后文章定位元素的时间有点长,怕大家忘记了,就在这里简单做一个总结和拓展. 2.Selenium八种定位方式 S ...

  10. 题解 Cover

    传送门 考场上坚持认为树上背包可以有70pts,于是爆零了 首先我以为是树上背包的部分分其实是树形DP 然后极其魔鬼的正解: 首先我们令 \(dp[i][j]\) 为以i为根的子树覆盖次数至多为j时的 ...