Python+selenium自动化之21----js富文本定位

 

本篇和上一篇文章Python+selenium自动化之20----写邮件与富文本定位基本内容一样,仅仅把富文本定位和操作使用JS实现,对JS用法不了解不熟悉的可以百度学习下,或者等着我出一期专门的js用法的文章。

 

从下图可以看出,正文编辑框属于div式的editor框iframe的id不是固定的,这里使用js用法document.getElementsByClassName()[],注意这里elements要有s,获取的是一个list,要对首位进行操作需要加[0]。contentWindow返回指定的iframe的窗口对象,然后调用document方法获取元素body,innnerHTML意味着标签对之间的内容,把字符串传给body。

 

源码:


# -*- coding: UTF-8 -*-
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
import time

def login(driver, user, pwd):
	# 打开腾讯企业邮箱
	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_id("composebtn").click()
	#进入 iframe
	driver.switch_to.frame("mainFrame")
	#定位 收件人
	time.sleep(3)
	driver.find_element_by_css_selector("#toAreaCtrl .addr_text [type='input']"
										).send_keys("123456@qq.com")
	#定位 主题
	driver.find_element_by_id("subject").click()
	driver.find_element_by_id("subject").send_keys("这是一个测试主题")
	#这里去掉了  tab键操作
	#driver.find_element_by_id("subject").send_keys(Keys.TAB)
	time.sleep(3)
	#JS定位 body 输入字符串“测试微服务!” 这里使用js无需切换iframe
	js = 'document.getElementsByClassName("QMEditorIfrmEditArea")[0]' \
		 '.contentWindow.document.body.innerHTML="%s"' % "测试微服务!"
	driver.execute_script(js)
	'''
	#定位 正文 进入 iframe
	zw_fram= driver.find_element_by_class_name("QMEditorIfrmEditArea")
	driver.switch_to.frame(zw_fram)
	#定位 正文
	driver.find_element_by_tag_name("body").send_keys("测试微服务!")
	'''

	#退出 iframe
	driver.switch_to.default_content()

def logout(driver):
	# 登录成功 等待页面加载
	time.sleep(4)
	# 退出登录
	driver.find_element_by_partial_link_text("退出").click()
	# 用于关闭浏览器,一般测试结束时需要使用
	driver.quit()


if __name__ == "__main__":
	driver = webdriver.Firefox()
	driver.implicitly_wait(20)
	user = input("请输入您的邮箱账户:")
	pwd = input("请输入您的邮箱密码:")
	# 调用login函数
	login(driver, user, pwd)
	# 调用 logout函数
	#logout(driver)

 

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值