gpt4 book ai didi

protractor - 无法使用 Protractor 获取 Monaco Editor 中的文本

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

我正在使用 Protractor cucumber 框架为 Monaco Editor 编写 BDD 测试。不久前,我发现了有关 Monaco API 以及如何以编程方式在编辑器中设置值的信息。但这一次,我无法使用 Protractor 在 Monaco Editor 中获取文本。这是我的代码示例:

browser.ignoreSynchronization = true;
let driver = browser.driver;
// iframe ids

let iframeID = 'editorFrame';

let editorSpanXpath = '//div[@id="editorContainer"]//div[contains(@class, "monaco- editor")]//div[contains(@class, "editor-scrollable")]'
// switching to the iFrame to perform tasks inside it
browser.switchTo().frame(iframeID);

// clicking on a div inside the editor to ascertain that
// the browser knows where to run the script

driver.findElement(by.xpath(editorSpanXPath)).click();
browser.executeScript('this.monaco.editor.getModels()[0].getValue()').then(function(editorText){
let replaceString = 'abracadbra' + editorText
browser.executeScript('this.monaco.editor.getModels()[0].setValue("' + replaceString + '")');
}
);

这里的问题是“editorText”的值一直为空。在运行我的 BDD 测试时,编辑器中的值被替换为 'abracadabranull'

编辑器使用一些默认文本进行初始化。由于“setValue”函数正在运行,我认为浏览器驱动程序可以轻松获取加载编辑器的 iFrame。

如有任何帮助,我们将不胜感激。

最佳答案

最后,一个简单的 return 语句挽救了局面:

browser.ignoreSynchronization = true;
let driver = browser.driver;
// iframe ids

let iframeID = 'editorFrame';

let editorSpanXpath = '//div[@id="editorContainer"]//div[contains(@class, "monaco- editor")]//div[contains(@class, "editor-scrollable")]'
// switching to the iFrame to perform tasks inside it
browser.switchTo().frame(iframeID);

// clicking on a div inside the editor to ascertain that
// the browser knows where to run the script

driver.findElement(by.xpath(editorSpanXPath)).click();
browser.executeScript('return this.monaco.editor.getModels()[0].getValue()').then(function(editorText){
let replaceString = 'abracadbra' + editorText
browser.executeScript(' return this.monaco.editor.getModels()[0].setValue("' + replaceString + '")');
}
);

非常感谢this为我指明正确方向的回答。

关于protractor - 无法使用 Protractor 获取 Monaco Editor 中的文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41040985/

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