网站首页 > 技术文章 正文
本篇文章主要说明table表格的定位。还是使用腾讯企业邮箱里的元素进行实例操作。
什么是table
Table是一个数据库控件,主要用于在web页面上创建表格,其功能与HtmlTable类似。不同的是,Table控件可以用动态的内容以编程的方式来生成表格。
〈table〉...〈/table〉 - 定义表格
〈th〉 - 定义表头
〈tr〉 - 定义表行
〈td〉 - 定义表元(表格的具体数据)
企业邮箱
企业邮箱设置中的文件夹和标签页,系统文件夹的内容就是一个表格。
查看页面元素,可以与上述定义做对照。
Table定位-清空【已删除】邮件
通过查看源码,【已删除】处于table[@id='contenttable']表格,第六行,“清空”处于第6列,xpath路径为"//table[@id='contenttable']//tr[6]/td[6]/a[@href='javascript:void(0)']"。
操作步骤:点击邮箱的设置,进入iframe不然无法操作下面的元素,点击“文件夹和标签”页,点击【已删除】列表的清空按钮,点击其他表格只需更换tr和td的下标即可。
源码可复制:
# -*- coding: UTF-8 -*-from selenium import webdriver
import time
def login(driver, user, pwd):
# 打开腾讯企业邮箱
driver.get("https://exmail.qq.com/login")
# 点击 账号密码登陆
driver.find_element_by_class_name("js_show_pwd_panel").click()
# 输入 账户
driver.find_element_by_id("inputuin").send_keys(user)
# 输入 密码
driver.find_element_by_id("pp").send_keys(pwd)
# 点击 登录
driver.find_element_by_id('btlogin').click()
#点击 设置
driver.find_element_by_link_text("设置").click()
time.sleep(3)
#进入 iframe
driver.switch_to.frame("mainFrame")
#进入 文件夹和标签
time.sleep(3)
driver.find_element_by_link_text("文件夹和标签").click()
time.sleep(3)
driver.find_element_by_xpath("//table[@id='contenttable']"
"//tr[6]/td[6]/"
"a[@href='javascript:void(0)']").click()
time.sleep(3)
# 退出 iframe
driver.switch_to.default_content()def logout(driver):
# 登录成功 等待页面加载
time.sleep(4)
# 退出登录
driver.find_element_by_partial_link_text("退出").click()
# 用于关闭浏览器,一般测试结束时需要使用
driver.quit()if __name__ == "__main__":
driver = webdriver.Firefox()
driver.implicitly_wait(20)
user = input("请输入您的邮箱账户:")
pwd = input("请输入您的邮箱密码:")
# 调用login函数
login(driver, user, pwd)
调用 logout函数
logout(driver)
猜你喜欢
- 2024-11-14 Playwright自动化测试工具之元素定位实战
- 2024-11-14 利器 | AppCrawler 自动遍历测试实践(二):定制化配置
- 2024-11-14 java组件HuTool相关工具类的使用二
- 2024-11-14 手把手教你爬取热门小说《诡秘之主》
- 2024-11-14 Python爬虫之xpath用法全解析(py xpath)
- 2024-11-14 怎么用xpath写drissionpage?或者用相对位置?
- 2024-11-14 通过python+Xpath实现抓取某网站推荐的歌曲
- 2024-11-14 Python自动化工具(python写自动化工具)
- 2024-11-14 web自动化测试——xpath常用案例(web自动化测试平台)
- 2024-11-14 手把手教你如何用Python爬取网站文本信息
- 最近发表
-
- count(*)、count1(1)、count(主键)、count(字段) 哪个更快?
- 深入探索 Spring Boot3 中 MyBatis 的 association 标签用法
- js异步操作 Promise fetch API 带来的网络请求变革—仙盟创梦IDE
- HTTP状态码超详细说明_http 状态码有哪些
- 聊聊跨域的原理与解决方法_跨域解决方案及原理
- 告别懵圈!产品新人的接口文档轻松入门指南
- 在Javaweb中实现发送简单邮件_java web发布
- 优化必备基础:Oracle中常见的三种表连接方式
- Oracle常用工具使用 - AWR_oracle工具有哪些
- 搭载USB 3.1接口:msi 微星 发布 990FXA Gaming 游戏主板
- 标签列表
-
- cmd/c (90)
- c++中::是什么意思 (84)
- 标签用于 (71)
- 主键只能有一个吗 (77)
- c#console.writeline不显示 (95)
- pythoncase语句 (88)
- es6includes (74)
- sqlset (76)
- apt-getinstall-y (100)
- node_modules怎么生成 (87)
- chromepost (71)
- flexdirection (73)
- c++int转char (80)
- mysqlany_value (79)
- static函数和普通函数 (84)
- el-date-picker开始日期早于结束日期 (76)
- js判断是否是json字符串 (75)
- asynccallback (71)
- localstorage.removeitem (74)
- vector线程安全吗 (70)
- java (73)
- js数组插入 (83)
- mac安装java (72)
- 查看mysql是否启动 (70)
- 无效的列索引 (74)