1. 程式人生 > >第22節:富文字框和editor編輯器的處理

第22節:富文字框和editor編輯器的處理

一般輸入框有三種:

  1. 短的input框,如下:

    input

    <input id="zenInput2" class="zenInputDemo" type="text" style="position: static;">
    
  2. textarea框,如下:

    textarea

    <textarea id="message1" name="message1"></textarea>

  3. div式的editor框,如下: 
    editor1


  4. 也可能是更復雜的iframe的editor,如下: 
    editor2


    下面依次看看這幾種輸入框該怎麼解決:

    1. input

    其實這個只是列在這裡,直接send_keys就行

    2.textarea

    很簡單,定位到元素,直接send_keys就行。

    程式碼:

    # -*- coding: utf-8 -*-
    
    from selenium import webdriver
    from time import sleep
    
    driver = webdriver.Firefox()
    driver.get('http://www.sucaijiayuan.com/api/demo.php?url=/demo/20150325-1')
    driver.maximize_window()
    
    driver.switch_to.frame('iframe')
    
    driver.find_element_by_id('message1'
    ).send_keys('Hello world!') # 很簡單,直接send_keys就行 sleep(2) print driver.find_element_by_id('message1').get_attribute('value') driver.quit()
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17

    結果:

    Hello world!
    • 1

    3.div式的editor

    這種一樣,定位到元素div,直接send_keys就行,不過這個send_keys不是到了‘value’屬性中,而是在text中。

    # -*- coding: utf-8 -*-
    
    from selenium import webdriver
    from time import sleep
    
    
    driver = webdriver.Firefox()
    driver.get('http:
    //www.sucaijiayuan.com/api/demo.php?url=/demo/%E5%9F%BA%E4%BA%8Ebootstrap%E7%9A%84%E8%BD%BB%E9%87%8F%E7%BA%A7jQuery%E6%96%87%E6%9C%AC%E7%BC%96%E8%BE%91%E5%99%A8%E6%8F%92%E4%BB%B6%20LineControl/index.html') driver.maximize_window() driver.switch_to.frame('iframe') driver.find_element_by_class_name('Editor-editor').send_keys('Hello world again!') # 沒什麼區別,也是直接send_keys sleep(2) print driver.find_element_by_class_name('Editor-editor').text driver.quit()
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18

    結果:

    Hello world again!
    • 1

    4.iframe中的editor

    這種是最複雜的一種,但要搞明白了,其實也很簡單。

    程式碼:

    # -*- coding: utf-8 -*-
    
    from selenium import webdriver
    
    driver = webdriver.Chrome(executable_path='D:\py\AutoTestFramework\drivers\chromedriver.exe')
    driver.get('http://ueditor.baidu.com/website/examples/completeDemo.html')
    
    driver.switch_to.frame('ueditor_0')  # 注意,這種editor一定有frame,一定要切frame
    
    body_string = """Hello world again again!
    Hello world again again!
    Hello world again again!
    
    Hello world again again!"""
    
    driver.find_element_by_tag_name('body').send_keys(body_string)  # 直接往frame裡的body裡填內容,是不是很簡單粗暴
    print driver.find_element_by_tag_name('body').text
    driver.quit()
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18

    結果:

    Hello world again again!
    • 1

    其實frame editor的內容一般都是寫在裡面的body裡,最重要的就是切到frame中去.frame中一般是一個空的html,其中顯示的內容即是body中的內容。


相關推薦

22文字editor編輯處理

一般輸入框有三種: 短的input框,如下: <input id="zenInput2" class="zenInputDemo" type="text" style="position: static;"> textarea框,如下: &

selenium之 文字editor編輯處理

在群裡經常會遇到有人問文字框的處理,今天有時間,便寫一點這方面的經驗。 一般輸入框有三種: 短的input框,如下: <input id="zenInput2" class="zenInputDemo" type="text" styl

Android零基礎入門第22ImageView的屬性方法大全

子類 parent ide eight odin 使用詳解 統架構 討論 架構 通過前面幾期的學習,TextView控件及其子控件基本學習完成,可以在Android屏幕上顯示一些文字或者按鈕,那麽從本期開始來學習如何在進行圖片展示,這就是涉及到另外一個非常重要的控件家族,那

手動安裝K8s創建dashboard發布應用

docker k8s kubernetes 容器 創建CoreDNS[root@k8smaster coredns]# lscoredns.yaml[root@k8smaster coredns]# kubectl create -f .serviceaccount "coredns

56天選中文字彈出提示

targe round owb 效果 rom 技術分享 () doctype tid 一、選中文字彈出提示框 選擇文字: 這個彈出的層 選中的時候不出來,彈起鼠標的時候才出現 。 所以這個的事件一定是 onmouseup ,盒子顯示而且盒子的位置 在 鼠標的 cl

OpenGL滾動矩陣棧

模型 ide bsp else glut render load errors 文件 頭文件不變 LUtil.h GLfloat gCameraX = 0.f, gCameraY = 0.f;//相機位置 bool initGL(){   glViewport(

數據批註(DataAnnotationModel)自定義驗證(包括Model級別的驗證)

命名 ida model 特征 component es2017 服務器端 作用 技術 一. 簡介   寫完上一個章節MVC中的常用特性,迫不及待將該系列補全,該章節主要介紹數據批註(也叫:註解)。   一聽【數據批註】,好高大上的名字,但仔細一看,它們其實是【Syste

9mode的設置404頁面的處理

history 處理 scrip http scroll route 正常 查看 return 在學習過渡效果的時候,我們學了mode的設置,但是在路由的屬性中還有一個mode。這節課我們就學習一下另一個mode模式和404頁面的設置。 mode的兩個值 histroy:

SignalR大雜燴(與MVC融合、全局的幾個配置、跨域的應用、C/S程序充當ClientServer)

融合 變化 方法 signalr 以管理員身份運行 cal 大小 整合 ref 一. 說在前面的話   本節主要在前面章節的基礎上補充了幾個簡單的知識點,比如:第三方調用通過 GlobalHost.ConnectionManager.GetHubContext<

38hashCode()與toString()與equals()函數的作用,內部類匿名內部類

指向 它的 函數 ati 使用外部 開發 算法 博客 else hashCode()和toString() Hash算法是把任意長度的數據通過hash算法成為散列值 hashCode() public int hashCode(){ int result = 10;

php學習筆記--php中的運算子流程控制

PHP的運算子、流程控制和其他語言的運算子一樣,沒什麼特別的,這裡不再累贅。     特別的運算子: .=             $a.=$b

高階控制元件自動提示文字下拉列表

高階控制元件 高階控制元件使用步驟 3.1 獲取資料 3.2 建立介面卡 陣列介面卡 ArrayAdapter 簡單介面卡 SimpleAdapter 3.3 繫結介面卡 高階控制元件與低階控制元件區別: **是否使用介面

工作區暫存區

學習目的 工作區: 在電腦裡能看到的目錄,比如我的GIT資料夾就是一個工作區; 暫存區: 檢視倉庫當前狀態; 分支: Git為我們自動建立的第一個分支master. 工作區 在電腦裡能看到的目錄,

Scala 程式設計—物件(二)

前言:         類和物件第二節,主要介紹:單例物件、伴生物件與伴生類、apply方法、抽象類 1.單例物件 Java語言中,如果想直接使用類名點的方式呼叫方法或屬性,直接用static修飾即可。但Scala語言不支援靜態成員,而提供了object物件,這

十五深入理解asyncawait的作用及各種適用場景用法

一. 同步VS非同步 1.   同步 VS 非同步 VS 多執行緒 同步方法:呼叫時需要等待返回結果,才可以繼續往下執行業務 非同步方法:呼叫時無須等待返回結果,可以繼續往下執行業務 開啟新執行緒:在主執行緒之外開啟一個新的執行緒去執行業務 同步方法和非

Scala入門到精通——物件(一)

本節主要內容 1 類定義、建立物件 2 主構造器 3 輔助構造器 類定義、建立物件 //採用關鍵字class定義 class Person { //類成員必須初始化,否則會報錯 //這裡定義的是一個公有成員 var name:Strin

Scala入門到精通——物件(二)

本節主要內容 單例物件 伴生物件與伴生類 apply方法 應用程式物件 抽象類 單例物件 在某些應用場景下,我們可能不需要建立物件,而是想直接呼叫方法,但是Scala語言並不支援靜態成員,Scala通過單例物件來解決該問題。單例物件的建立方式如下:

Java高級架構師(一)28Index、商品詳細頁購物車

cat condition glib 1.0 dsm attr odin pri public <%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="utf

JQ外掛獲取文字(textarea)內的所選字元游標位置索引值-selection

(function($){ $.fn.selection = function(){ var s,e,range,stored_range; if(this[0].selectionStart == undefined){ var selection=document.selection; i

MFC介面程式設計基礎(11)靜態文字、命令按鈕編輯

上一篇:MFC介面程式設計基礎(10):基於對話方塊的MFC應用程式 下一篇:MFC介面程式設計基礎(12):組框、單選按鈕和複選框 靜態文字框、命令按鈕和編輯框是Windows應用程式中最基本的控制元件。靜態文字