UI自动化测试(富文本、webdriverwait,面向对象)
一、富文本的处理
1、通过元素定位来输入
from selenium import webdriver
import time as t
driver=webdriver.Chrome()
driver.maximize_window()
driver.get('https://www.bejson.com/ui/ueditor/')
t.sleep(3)
# 进入到iframe框架
driver.switch_to.frame('ueditor_0')
# 先输入文本,方便定位
driver.find_element_by_xpath('/html/body/p').send_keys('书山有路勤为径')
t.sleep(3)
driver.quit()
2,通过JS方式
from selenium import webdriver
import time as t
def richText(driver,richID,content):
# :param
# driver: 指的是webdriver实例化后的对象
# :param
# richID: iframe框架的ID
# :param
# content: 被输入的内容
# :return:
js="document.getElementById('{0}').contentWindow.document.body.innerHTML='{1} '".format(richID,content)
driver.execute_script(js)
driver=webdriver.Chrome()
driver.maximize_window()
driver.get('https://www.bejson.com/ui/ueditor/')
richText(driver=driver,richID='ueditor_0',content='学海无涯苦作舟')
t.sleep(3)
driver.quit()
二、WebdriverWait实战
在UI自动化测试中,等待主要存在三种情况:
1、固定等待 time模块当中的sleep方法
2、隐式等待 设置最长等待时间implicitly_wait
3、显示等待,程序每隔一段时间执行自定义的程序判断条件,如果判断成功,程序就会继续进行;如果判断失败,程序就会报timeoutecpection的异常信息。
element_to_clickable,找到元素后进行操作
from selenium import webdriver from selenium.webdriver.support.ui import WebDriverWait from selenium.webdriver.support import expected_conditions as es from selenium.webdriver.common.by import By import time as t driver=webdriver.Chrome() driver.maximize_window() driver.implicitly_wait(30) driver.get('http://www.baidu.com') so=WebDriverWait(driver=driver,timeout=10).until(es.element_to_be_clickable((By.ID,'kw'))) so.send_keys('hello world') t.sleep(3) driver.quit()
visibility_of_element_located方法的左右是等元素可见后再操作。
from selenium import webdriver from selenium.webdriver.support.ui import WebDriverWait from selenium.webdriver.support import expected_conditions as es from selenium.webdriver.common.by import By import time as t driver=webdriver.Chrome() driver.maximize_window() driver.implicitly_wait(30) driver.get('http://www.baidu.com') so=WebDriverWait(driver=driver,timeout=5).until(es.visibility_of_element_located((By.ID,'kw'))) so.send_keys('hello world') t.sleep(3) driver.quit()
三、在Python中,定义类的关键字是class,所有类的基类是object。
class Person(object): # 数据属性 city='西安' def __init__(self,name,age): print('开始执行') # 实列属性 self.name=name self.age=age def show(self): print('my name is {0},my age is {1},my city is 西安'.format(self.name,self.age,self.city)) def __del__(self): print('执行结束') obj=Person(name='wuyikai',age=26) obj.show() print(obj.name) print(obj.age) print(obj.city) print(Person(name='wuyikai',age=26).name) print(Person(name='wuyikai',age=26).age) print(Person(name='wuyikai',age=26).city)

浙公网安备 33010602011771号