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-8from selenium import webdriverfrom selenium.webdriver.common.keys import Keysimport timeprofileDir = r"C:UsersGloriaAppDataRoamingMozillaFirefoxProfiles1x41j9of.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)


推薦閱讀:

selenium自動化測試入門 層級定位與定位一組元素
Python 爬蟲練習:使用selenium+chrome爬取球探網比賽數據(ajax非同步載入)
selenium自動化測試入門n Alert/Confirm/Prompt 彈出窗口處理
使用Selenium對網頁元素進行定位的諸種方法
selenium的基本使用

TAG:自動化 | Selenium |