首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >我应该使用什么定位器或命令来在Redactor文本编辑器上执行“`type`”?

我应该使用什么定位器或命令来在Redactor文本编辑器上执行“`type`”?
EN

Stack Exchange QA用户
提问于 2017-01-27 04:49:57
回答 1查看 257关注 0票数 2

当我试图在编者文本编辑器上自动输入用户时,我遇到了一个问题。

详情如下:

  • 在红皮书文本编辑器上使用命令clickclickAt
  • 用于IDNameClass的定位器。
  • 使用命令type并输入文本
  • 保存按钮上使用的命令click

所有的测试用例都通过了,但是在点击Save按钮之后,没有输入/出现在Redactor文本编辑器上的文本,为什么呢?

EN

回答 1

Stack Exchange QA用户

回答已采纳

发布于 2017-02-09 15:20:40

绝对可解

问题:编辑人员通常以不同的方式工作。您可以只对inputbox使用type或sendKeys IDE命令,这将注入inputbox的值。

文本编辑器通常生成id,每次重新加载页面时,id不同。

解决方案:文本编辑器通常使用唯一的id定义元素,其中包含后续/子HTML标记,作为编辑文本的内容。您可以做的是通过javaScript在storeEval中向该元素注入值。

IDE代码示例:您必须本地化并替换idOfTextArea存储变量的Xpath

代码语言:javascript
运行
复制
<tr>
    <td>store</td>
    <td><p>Some text<br></p></td>
    <td>inputText</td>
</tr>
<tr>
    <td>storeAttribute</td>
    <td>//div[contains(@id,'taTextElement')]@id</td>
    <td>idOfTextArea</td>
</tr>
<tr>
    <td>storeEval</td>
    <td>this.browserbot.getCurrentWindow().document.getElementById(storedVars['idOfTextArea']).innerHTML = storedVars['inputText']; </td>
    <td></td>
</tr>
<tr>
    <td>storeEval</td>
    <td>this.browserbot.getCurrentWindow().document.getElementById(storedVars['idOfTextArea']).innerHTML</td>
    <td>resulttext</td>
</tr>

解释

  • 在每次重新加载页面时,如果编辑器窗口的id发生更改,则通过storeAttribute | //div[contains(@id,'taTextElement')]@id获得它的id。如果编辑器窗口的id是常量,则可以跳过这一点,或者用store | some ConstantId替换它。
  • 通过this.browserbot.getCurrentWindow()获得当前的HTML
  • 通过getElementById(storedVars['idOfTextArea'])获得编辑器窗口的对象。如果编辑器窗口元素的id是常量,则可以替换它为storedVars[...]
  • 通过.innerHTML获取或更改编辑器窗口中的所有HTML
  • 存储的变量resulttext将包含文本,如果一切正常,那么您可以通过比较inputtextresulttext来验证结果。
票数 1
EN
页面原文内容由Stack Exchange QA提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://sqa.stackexchange.com/questions/25123

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档