当前位置: 首页 > 知识库问答 >
问题:

如何使用WebDriver自动执行Ace编辑器(发送密钥)?

柳仲卿
2023-03-14

在我的应用程序中,所有的查询编辑器都是Ace编辑器,我需要使用WebDriver输入查询。我试过使用发送键,但似乎不起作用。有没有其他的方式我可以发送我的输入到Ace编辑器,从而自动化?

下面是我的HTML代码

<div class="" ng-show="queryType=='Spark Query'">
    <pre class=" ace_editor ace-xcode">
    <textarea class="ace_text-input" wrap="off" autocorrect="off" autocapitalize="off" spellcheck="false" style="opacity: 0; height: 18px; width: 7px; left: 4px; top: 0px;"/>
    <div class="ace_gutter" style="display: none;">
    <div class="ace_scroller" style="left: 0px; right: 0px; bottom: 0px;">
    <div class="ace_content" style="margin-top: 0px; width: 659px; height: 334px; margin-left: 0px;">
    <div class="ace_layer ace_print-margin-layer">
    <div class="ace_layer ace_marker-layer"/>
    <div class="ace_layer ace_text-layer" style="padding: 0px 4px;">
    <div class="ace_layer ace_marker-layer"/>
    <div class="ace_layer ace_cursor-layer ace_hidden-cursors">
    </div>
</div>

共有2个答案

翁宏茂
2023-03-14

我发现在ACE的textarea上使用以下sequence是可靠的。mousedownmouseup然后sendtext

Click对我来说不可靠,因为Ace的方式决定了它是否应该聚焦文本区。

谢谢你的问题,很高兴知道我不是一个人。希望这对你有帮助!

秦育
2023-03-14

使用编辑器API应该比使用SendKeys容易得多。例如,下面是一个C#控制台应用程序,它在当前演示编辑器中打开ACE主页并更改文本:

class Program
{
    static void Main(string[] args)
    {
        ChromeDriver driver = new ChromeDriver();
        driver.Navigate().GoToUrl("http://ace.c9.io/");
        driver.ExecuteScript("editor.setValue('the new text here');");
    }
}

editor是页面中对应于ACE编辑器实例的变量,我刚刚使用了这里详细介绍的第一个API示例之一:使用ACE

 类似资料:
  • ACE 是一个实现了语法着色功能的基于 Web 的代码编辑器,具有良好的代码提示功能和大量的主题,所以在 Web 端你想拥有一个编辑器,ACE 是不二选择。 官网:https://ace.c9.io/

  • 问题内容: 我希望将Facebook登录/注册测试引入C#应用程序的Webdriver套件中。 Facebook Developers上有一篇有关手动验证的文章,但似乎没有引用任何用于自动化这些测试的过程。我可以简单地编写所示的步骤,但是我想避免在Facebook UI上运行脚本,尤其是在涉及创建测试用户时。 查看以前的答案,看来Facebook早在几年前就有了自动化解决方案,但是我再也找不到它的

  • 问题内容: 每次我运行测试的第一步时,都要登录,然后才进入所需的页面。如果运行此测试,则通常登录操作会花费很多时间。 如何通过登录操作? 使用Java语言的Chrome和Firefox驱动程序。 问题答案: 使用Java API 创建cookie ,如下所示: 使用Python API创建cookie ,如下所示:

  • 我为gmail添加了回旋镖,以便在gmail compose上获得“稍后发送”按钮,而当我在selenium上自动执行“稍后发送”按钮时,我没有获得该按钮,有人能告诉我吗?

  • 我正在测试ace-editor显示服务器上的大型文本文件。由于它吹嘘能够处理高达4百万行的文件,并且具有文本高亮显示功能,这使它成为一个很好的候选者。 我一直在努力理解Ace Editor的文档和EditSession。根据我的理解,它可以告诉ace editor从一个文件中读取并显示它。 我正在使用createEditSessiont()创建会话并指定文档。在api文档中: createEdit

  • 问题内容: 由于某种原因,我无法将字符“ 3”写入页面上的输入元素。 这段代码: 导致在登录输入中写入“ 1245” …有人可以帮忙吗?我使用python 2.7,最新的chrome和最新的chromedriver 编辑: 也不管用。 -字符串中仅缺少“ 3” … 起作用的是 正如安德森(Andersson)在下文中建议的那样,但这不是解决方案。 我在Google搜索框中进行了尝试,并且遇到了相同