# !/usr/bin/env python
# -*- coding:utf-8 -*-
import time as t
from selenium import webdriver
driver = webdriver.Chrome()
driver.maximize_window()
driver.get('https://www.bejson.com/ui/ueditor/')
t.sleep(3)
driver.switch_to.frame('ueditor_0')
driver.find_element_by_xpath('/html/body/p').send_keys('ASD')
t.sleep(3)
driver.quit()
# 富文本:JS处理
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/')
t.sleep(3)
richText(driver=driver,richID='ueditor_0',content='ASDFGHJKL;')
t.sleep(3)
driver.quit()
'''
固定等待,使用time库实现
隐式等待,设置最长等待时间
显式等待,程序每隔一段时间执行自定义的程序判断条件,案例主要以显式等待演示它的作用使用webdriver的类
'''
# 隐式等待
driver = webdriver.Chrome()
driver.maximize_window()
driver.get('https://www.baidu.com/')
driver.implicitly_wait(30)
t.sleep(3)
driver.quit()
from selenium.webdriver.support.wait 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')
# 元素可见并进行操作
# element_to_be_clickable()找到元素后进行操作
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()
# ttext_to_present_in_element()验证一个文本的错误信息或提示信息
# element_to_be_clickable()元素可见后进行操作
# Visibility_of_element_located()主要应用于判断在可见后进行操作
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('hello word')
t.sleep(3)
driver.quit()