Selenium自动化,一直以为是富文本的问题,原来是切换frame的问题

在尝试使用Selenium进行自动化测试时,遇到一个看似富文本编辑器的问题,尝试了各种富文本API操作未果。后来发现是frame切换的问题。通过定位iframe元素,切换到目标frame并输入内容,最终解决了问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

话不多说,先上源码:
<div position="relative">
<textarea id="artContent" class="span14" name="fckeditorContent" validate-rules="[['required','请填写$']]" validate-title="正文" style="display: none;" aria-hidden="true"></textarea>
<span id="artContent_parent" class="mceEditor defaultSkin" role="application" aria-labelledby="artContent_voice">
<span id="artContent_voice" class="mceVoiceLabel" style="display:none;">Rich Text Area</span>
<table id="artContent_tbl" class="mceLayout" cellspacing="0" cellpadding="0" role="presentation" style="width: 680px; height: 300px;">
<tbody>
<tr class="mceFirst" role="presentation">
<tr class="mceLast">
<td class="mceIframeContainer mceFirst mceLast">
<iframe id="artContent_ifr" frameborder="0" src="javascript:""" allowtransparency="true" title="Rich Text AreaPress ALT-F10 for toolbar. Press ALT-0 for help" style="width: 100%; height: 277px; display: block;">
<!DOCTYPE >
<html>
<head xmlns="http://www.w3.org/1999/xhtml">
<body id="tinymce" class="mceContentBody " contenteditable="true" onload="window.parent.tinyMCE.get('artContent').onLoad.dispatch();" spellcheck="false" dir="ltr">
<p>

一看源码,我以为是富文本问题,网站找了资料怎么操作富文本的,调用富文本API的,我对富文本不熟悉啊,照猫画虎,做完了不行啊,惆怅的。。。

这个东西selenium ide也录不了哇,Xpath也找不到啊,没有出路哇,。。后来问了一大牛,大牛说操作textarea,修改textarea属性(style="display: none;" aria-hidden="true),,结果试了试,也是不行啊。。。。


没办法,在找了些资料,再看看源码。。。。。看到了这个  “<!DOCTYPE >” 这个是什么? frame啊。。。。切frame  试试吧  。。。


终于皇天不负有心人,成功搞定啦。。。。。

上源码。。。

WebElement iframe=driver.findElement(By.xpath("//iframe[@id='artContent_ifr']")); //找到iframe
driver.switchTo().defaultContent();//切换到默认内容
driver.switchTo().frame(iframe);//切换到目标frame
driver.findElement(By.xpath("//body[@id='tinymce']")).sendKeys("'<p>'"+content+"'</p>'");//send内容
driver.switchTo().defaultContent();//切回到默认内容

在进行下一步操作就ok了。

撒花。。。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值