网站首页 > 技术文章 正文
本篇文章主要说明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爬取网站文本信息
- 最近发表
-
- 聊一下 gRPC 的 C++ 异步编程_grpc 异步流模式
- [原创首发]安全日志管理中心实战(3)——开源NIDS之suricata部署
- 超详细手把手搭建在ubuntu系统的FFmpeg环境
- Nginx运维之路(Docker多段构建新版本并增加第三方模
- 92.1K小星星,一款开源免费的远程桌面,让你告别付费远程控制!
- Go 人脸识别教程_piwigo人脸识别
- 安卓手机安装Termux——搭建移动服务器
- ubuntu 安装开发环境(c/c++ 15)_ubuntu安装c++编译器
- Rust开发环境搭建指南:从安装到镜像配置的零坑实践
- Windows系统安装VirtualBox构造本地Linux开发环境
- 标签列表
-
- 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)
- c语言min函数头文件 (77)
- asynccallback (87)
- localstorage.removeitem (77)
- vector线程安全吗 (73)
- java (73)
- js数组插入 (83)
- mac安装java (72)
- 无效的列索引 (74)
