本文主要是介绍Python+selenium自动化之29----EC模块之element_located_selection_state_to_be,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
上一篇介绍selenium中一个模块expected_conditions判断文本是否存在的方法text_to_be_present_in_element。如果有多个选择框需要验证是否被勾选或取消勾选,就需要用到本篇文章介绍的方法element_located_selection_state_to_be。
实例还是结合腾讯企业邮箱的使用。
源码element_located_selection_state_to_be
class element_located_selection_state_to_be(object):""" An expectation to locate an element and check if the selection statespecified is in that state.locator is a tuple of (by, path)is_selected is a boolean"""def __init__(self, locator, is_selected):self.locator = locatorself.is_selected = is_selecteddef __call__(self, driver):try:element = _find_element(driver, self.locator)return element.is_selected() == self.is_selectedexcept StaleElementReferenceException:return False
locator:定位器
is_selected:选择状态,bool值,传入一个期望是否被选中,如果期望值与实际状态一致则返回True,不一致则返回False。
判断选中状态
首先登陆邮箱,要用自己的邮箱哦;
选择账户密码登陆;
点击首页的【设置】,进入到设置页,默认为常规设置页
判定文字大小的选择状态是否一致
可以结合测试场景,判定是否被选中,进行选择或取消操作,以及判定操作后的状态。
# -*- coding: UTF-8 -*-from selenium import webdriverfrom selenium.webdriver.support import expected_conditions as ECimport timedriver = webdriver.Firefox()driver.implicitly_wait(20)user = "123@qq.com"pwd = "123"# 打开腾讯企业邮箱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)# 进入 iframedriver.switch_to.frame("mainFrame")loc = ("id","viewsetting2")text = 1emailtext = EC.element_located_selection_state_to_be(loc,text)(driver)print(emailtext)if emailtext:print("已选择!")else:print("未选择!")driver.quit()
这篇关于Python+selenium自动化之29----EC模块之element_located_selection_state_to_be的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!