一、副文本的处理
1、副文本的处理(进入iframe框架)
from selenium import webdriver
import time as t
#富文本的处理
driver=webdriver.Chrome()
driver.maximize_window()
driver.get('https://www.bejson.com/ui/ueditor/')
driver.switch_to.frame('ueditor_0')
t.sleep(2)
driver.find_element_by_xpath('/html/body/p').send_keys('呵呵呵呵呵呵')
t.sleep(4)
driver.quit()
2、副文本的处理(js)
from selenium import webdriver
import time as t
def richtext(driver,richID,content):
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库来实现的
2、隐式等待,设置最长等待时间
3、显式等待,程序每隔一段时间执行自定义的程序判断条件。案例主要以显式等待来演示它的应用,使用到的类式webdriverwait的类
元素可见并且可以操作
(1)元素可见并且可以操作,找到元素后进行操作:element_to_be_clickable
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as es
from selenium.webdriver.common.by import By
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()
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as es
from selenium.webdriver.common.by import By
driver=webdriver.Chrome()
driver.maximize_window()
driver.implicitly_wait(30)
driver.get('http://baidu.con')
so=WebDriverWait(driver=driver,timeout=10).until(es.element_to_be_clickable(By,ID,'kw'))
(2)判断元素是否可见:visibility_of_element_located
主要应用于判断在可见后,进行一系列的操作,
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as es
from selenium.webdriver.common.by import By
"""元素是否可见"""
driver=webdriver.Chrome()
driver.maximize_window()
driver.implicitly_wait(30)
driver.get('http://www.baidu.com')
so=WebDriverWait(driver=driver,timeout=4).until(es.visibility_of_element_located((By.ID,'kw')))
so.send_keys("holle chen")
t.sleep(3)
driver.quit()
三、面向对象
1、类
"""
1、执行构造函数,并初始化
2、调用里面的方法
3、清理操作
"""
class Person(object):
city="西安" \
""
def __init__(self,name,age):
"""初始化"""
print("开始执行")
self.name=name
self.age=age
def show(self):
print('my name is {0},and my age is {1},and my address is {2}'.format(self.name,self.age,self.city))
def __del__(self):
"""清理操作"""
print('执行结束')
obj=Person(name='chen',age=213)
# print('名字:%s,年龄:%d'%(obj.name,obj.age))
obj.show()
print(obj.city)
print(Person(name='chen',age=213).city)
print(obj.city)
"""
类属性范畴
1、属于对象
2、属于类的
类属性它是属于类的
实例属性他是属于类的对象的
那么我们调用类里面的任何方法,首先是对类进行实例化,得到类里面的对象,然后使用对象调用类里面的方法
"""
执行以上代码,结果为:

浙公网安备 33010602011771号