大家好,我是二黑

Python+selenium自动化之EC模块之div弹窗

弹窗有div、alert、confirm、prompt等几类,div弹窗其实和普通元素没有区别, div弹框是否被隐藏,一般情况下可以获取div弹框属性都会有style=“display: none;”,none代表显示,出现属性值就是隐藏。有时候定位不到就可以结合EC、WebDriverWait设置等待,等到元素出现做出相应的操作。

实例还是使用腾讯企业邮箱,查看邮件列表,选择已读邮件删除,这里选择把QC通知的邮件删除。图中class为i.F则为未读,i.M则为已读。
Python+selenium自动化之EC模块之div弹窗_性能测试
进入QC文件夹并点击删除,需要进入iframe内

Python+selenium自动化之EC模块之div弹窗_软件测试_02
需要彻底删除邮件时会弹窗确认是否删除,该弹窗为div弹窗,因为弹窗不在iframe内,需要跳出。

弹窗判断

弹窗中的“确定”和“取消”的属性都具有唯一性,可以使用ID进行操作,这里结合EC和WebDriverWait进行确定元素是否存在且点击该元素。

需要首先导入:

from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
Python+selenium自动化之EC模块之div弹窗_软件测试_03
删除文件,点击确定按钮,使用presence_of_element_located(判断某个元素是否被加到了dom树里,并不代表该元素一定可见)判断元素是否存在。如果DIV弹窗元素为隐藏时,也可以使用该方法。

Python+selenium自动化之EC模块之div弹窗_自动化测试_04