我正在使用“在网页上运行JavaScript函数”从网站中提取日和月。问题是JS函数返回的值(作为power automate var存储到DateVar)被Power Automate视为[object Object]。
下面是JS代码。
var dynamicSelector = '[data-test="qc-wrapper"]';
function extractAndConcatenateDate() {
// Find the elements by the dynamic selector
var cardElement = document.querySelector(dynamicSelector);
if (!cardElement) {
return 'Element not found';
}
// Find the elements by their class names or other attributes
var dateElement = cardElement.querySelector('.sc-ABC1 .sc-XYZ1');
var monthElement = cardElement.querySelector('.sc-ABC2 .sc-XYZ2');
// Extract the text content from the elements
var date = dateElement.textContent;
var month = monthElement.textContent;
// Return the concatenated date and month as a string
return date + month;
}
// Call the function and return the concatenated date and month as a string
return extractAndConcatenateDate();
我需要以文本的形式获取返回值。
因为它是作为一个Object返回的,所以我考虑并尝试了以下方法。
1.使用“Set variable”(设置变量)操作创建新的功率自动变量:tempVar =“tempContent”
1.在JS fn中,添加了一个语句('%tempVar%' = date+month;)希望文本内容将被更新到这个power automate变量。
1.执行“在网页上运行JavaScript函数”。
1.但是tempVar仍然只包含“tempContent”。
到目前为止,我只能看到两个选择:
1.找到一种方法来更新JS函数中的tempVar
1.找到一种方法从返回的[object Object]中获取文本值
我也试过使用JSON.stringify返回,但仍然没有运气!
请使用Power Automate Desktop Flow提供有关此问题的建议。
1条答案
按热度按时间nbysray51#
“在网页上运行JavaScript函数”操作似乎有一个主要问题。可能和这台Manivest V3有关
它似乎仍然可以操作页面内容,但不能返回值。甚至是像这样简单的事情:
坏了
另一种方法是添加一个UI元素,不管是什么元素。然后使用一个变量,你分配css选择器值,然后使用UI元素的默认值中的变量。
使用“获取网页上元素的详细信息”操作,您可以根据需要提取文本。(将代码复制到PAD流)
它应该看起来像这样:
我不知道你的页面看起来像什么,但我用telerik scheduler demo site(月视图)来解释这个答案。
我添加了一个UI元素,任何元素都可以。
编辑UI元素并翻转文本编辑器开关。然后将默认值设置为变量。
结果是在弹出窗口中显示2个值的弹出窗口。
JavaScript操作不起作用是一个痛苦,但这至少是一种替代方案。