本篇文章主要说明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)