gpt4 book ai didi

protractor - 通过 Protractor 在 Ace Editor 中插入文本会引发错误

转载 作者:行者123 更新时间:2023-12-05 07:38:28 24 4
gpt4 key购买 nike

我正在尝试运行自动化测试,测试用例的步骤之一是清除 Ace 编辑器并在其中插入文本。

之前我有常规的内容可编辑 DIV,我可以在其中插入文本,但在切换到 Ace Editor 后就不能了。

我所做的只是在元素上调用“clear”方法,然后在其上调用“sendText”。我尝试在清除之前添加“单击”方法以确保 Ace Editor 确实具有焦点并且它确实将焦点带到了 Ace Editor 但它仍然抛出一个错误,即元素应该是用户可编辑的以清除它。

我还尝试在清除它之前先休眠 5 秒,以防万一,在 Ace 使 div 可编辑之前触发清除。

这里是准确的错误。

Failed: invalid element state: Element must be user-editable in order to clear it.

最佳答案

棘手的问题。由于 Ace Editor 不是 native 浏览器元素,我查看了它们提供的 api。好像你可以使用 .selection.selectAll().removeLines()

如果我是你 - 我会尝试调用 JS 函数,它会选择所有内容,然后调用 .removeLines()

await browser.executeScript(`editor_reference.selection.selectAll(); editor_reference.removeLines()`) // variable will be diferent, depending how you connected editor object

http://www.protractortest.org/#/api?view=webdriver.WebDriver.prototype.executeScript

https://ace.c9.io/#nav=api&api=editor

您可以在他们的示例页面 (https://ace.c9.io/) 上看到它是如何工作的——在浏览器控制台中执行它,编辑器应该被清除:

editor.selection.selectAll(); editor.removeLines()

关于protractor - 通过 Protractor 在 Ace Editor 中插入文本会引发错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47899968/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com