51Testing软件测试论坛

 找回密码
 (注-册)加入51Testing

QQ登录

只需一步,快速开始

微信登录,快人一步

查看: 3875|回复: 6
打印 上一主题 下一主题

webdriver 处理富文本框疑问

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2014-7-25 10:28:28 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
初学selenium,遇到往富文本框写入内容的疑问,在浏览器console中写入文本能成功,程序中报错写入代码为
String s = "document.getElementById('ueditor_0').contentWindow.document.body.innerText='test';";
((JavascriptExecutor)driver).executeScript(s);
报错信息为
debug1org.openqa.selenium.WebDriverException: document.getElementById(...) is null
Command duration or timeout: 24 milliseconds
Build info: version: '2.41.0', revision: '3192d8a', time: '2014-03-27 17:18:15'
System info: host: 'USER-20140421LD', ip: '192.168.1.122', os.name: 'Windows 7', os.arch: 'amd64', os.version: '6.1', java.version: '1.8.0_05'
Driver info: org.openqa.selenium.firefox.FirefoxDriver
Capabilities [{applicationCacheEnabled=true, rotatable=false, handlesAlerts=true, databaseEnabled=true, version=30.0, platform=XP, browserConnectionEnabled=true, nativeEvents=false, acceptSslCerts=true, webStorageEnabled=true, locationContextEnabled=true, browserName=firefox, takesScreenshot=true, javascriptEnabled=true, cssSelectorsEnabled=true}]
Session ID: 5dfa34b2-2b5f-400a-b498-94809f546e85

at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)

at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source)

at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source)

at java.lang.reflect.Constructor.newInstance(Unknown Source)

at org.openqa.selenium.remote.ErrorHandler.createThrowable(ErrorHandler.java:193)

at org.openqa.selenium.remote.ErrorHandler.throwIfResponseFailed(ErrorHandler.java:145)

at org.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java:595)

at org.openqa.selenium.remote.RemoteWebDriver.executeScript(RemoteWebDriver.java:504)

at com.x2.Todo.testAddTodo(Todo.java:90)

at com.x2.Todo.main(Todo.java:39)

浏览器console能写进内容
document.getElementById('ueditor_0').contentWindow.document.body.innerText='test';

"test"


本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?(注-册)加入51Testing

x
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏
回复

使用道具 举报

  • TA的每日心情
    无聊
    昨天 09:19
  • 签到天数: 933 天

    连续签到: 5 天

    [LV.10]测试总司令

    2#
    发表于 2014-7-28 13:41:49 | 只看该作者
    请把问题写的明确点~~
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    3#
     楼主| 发表于 2014-7-29 10:58:16 | 只看该作者
    回复 2# lsekfe


        是哪个地方不明确呢?用JS往富文本框写内容,JS代码:
    document.getElementById('ueditor_0').contentWindow.document.body.innerText='test';在浏览器console中能写进去,
    但是代码中:
    String s = "document.getElementById('ueditor_0').contentWindow.document.body.innerText='test';";
    ((JavascriptExecutor)driver).executeScript(s);报错
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    4#
    发表于 2014-8-2 21:30:07 | 只看该作者
    学习了,谢谢楼主分享
    回复 支持 反对

    使用道具 举报

  • TA的每日心情

    2015-4-9 17:10
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]测试小兵

    5#
    发表于 2014-8-4 12:53:58 | 只看该作者
    需要选定 iframe driver.switchTo().frame(XXX)方法
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    6#
     楼主| 发表于 2014-8-5 17:10:53 | 只看该作者
    回复 5# jia8162


      选定iframe啥意思呢,就是进入iframe吗,这个肯定是进入了的driver.switchTo().frame("ueditor_0");
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    7#
     楼主| 发表于 2014-8-14 16:30:13 | 只看该作者
    纠结了这么久的问题,其实原因是刚刚开始已经进入iframe了,driver.switchTo().frame("ueditor_0");js里面又进入了一次,导致后面报contentWindow为空,js直接往body写内容就是了((JavascriptExecutor)driver).executeScript("document.body.innerText='spanish';");
    都怪自己对js不熟悉,根本想不到,让开发看,一会儿就找到问题了
    回复 支持 反对

    使用道具 举报

    本版积分规则

    关闭

    站长推荐上一条 /1 下一条

    小黑屋|手机版|Archiver|51Testing软件测试网 ( 沪ICP备05003035号 关于我们

    GMT+8, 2024-4-20 16:51 , Processed in 0.076069 second(s), 28 queries .

    Powered by Discuz! X3.2

    © 2001-2024 Comsenz Inc.

    快速回复 返回顶部 返回列表