Selenium2+python自動化23-富文本(自動發帖)【轉載】
前言
富文本編輯框是做web自動化最常見的場景,有很多小夥伴遇到了不知道無從下手,本篇以博客園的編輯器為例,解決如何定位富文本,輸入文本內容
一、加載配置
1.打開博客園寫隨筆,首先需要登錄,這裏為了避免透露個人賬戶信息,我直接加載配置文件,免登錄了。
不懂如何加載配置文件的,看這篇Selenium2+python自動化18-加載Firefox配置
二、打開編輯界面
1.博客首頁地址:bolgurl = "http://www.cnblogs.com/"
2.我的博客園地址:yoyobolg = bolgurl + "yoyoketang"
3.點擊“新隨筆”按鈕,id=blog_nav_newpost
三、iframe切換
1.打開編輯界面後先不要急著輸入內容,先sleep幾秒鐘
2.輸入標題,這裏直接通過id就可以定位到,沒什麽難點
3.接下來就是重點要講的富文本的編輯,這裏編輯框有個iframe,所以需要先切換
(關於iframe不懂的可以看前面這篇:Selenium2+python自動化14-iframe)
四、輸入正文
1.這裏定位編輯正文是定位上圖的紅色框框位置body部分,也就是id=tinymce
2.定位到之後,直接send_keys()方法就可以輸入內容了
3.有些小夥伴可能輸入不成功,可以在輸入之前先按個table鍵,send_keys(Keys.TAB)
五、參考代碼:
# coding:utf-8
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
import time
profileDir = r‘C:\Users\Gloria\AppData\Roaming\Mozilla\Firefox\Profiles\1x41j9of.default‘
profile = webdriver.FirefoxProfile(profileDir)
driver = webdriver.Firefox(profile)
bolgurl = "http://www.cnblogs.com/"
yoyobolg = bolgurl + "yoyoketang"
driver.get(yoyobolg)
driver.find_element_by_id("blog_nav_newpost").click()
time.sleep(5)
edittile = u"Selenium2+python自動化23-富文本"
editbody = u"這裏是發帖的正文"
driver.find_element_by_id("Editor_Edit_txbTitle").send_keys(edittile)
driver.switch_to.frame("Editor_Edit_EditorBody_ifr")
driver.find_element_by_id("tinymce").send_keys(Keys.TAB)
driver.find_element_by_id("tinymce").send_keys(editbody)
Selenium2+python自動化23-富文本(自動發帖)【轉載】