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)

 

posted @ 2021-08-16 16:38  wuyikai  阅读(113)  评论(0)    收藏  举报