温馨提示:本文翻译自stackoverflow.com,查看原文请点击:其他 - How to make Execute JavaScript of RobotFramework's keyword return a value
javascript robotframework

其他 - 如何使RobotFramework关键字的Execute JavaScript返回值

发布于 2020-04-20 11:53:46

如何使RobotFramework的Execute JavaScript返回值

我需要使用JavaScript代码将类元素的文本返回到RF中的变量。我尝试了以下代码,但得到 $ {search_result} = None它不返回所选元素内的文本。

:FOR    ${index}                    IN RANGE                            0   23
\  ${search_result} =             Execute JavaScript                  floatMaster.querySelectorAll('#gContact_searcResultshWindow .gContactDetailClientListDiv .gContactListName')[${index}].innerText

我也在下面尝试过,但是我刚得到JavascriptException:消息:javascript错误:意外的数字

${search_result} =              Execute JavaScript                   function myFunction(${index}) {return floatMaster.querySelectorAll('#gContact_searcResultshWindow .gContactDetailClientListDiv .gContactListName')[${index}].innerText}()

for循环的原因是javascript定位器有多个结果,我想确保每个结果都带有特定的文本。我在循环末尾有一个“应该包含”命令。

来自浏览器控制台的javascript定位器结果

当我尝试在浏览器控制台中使用带有索引的javascript locator命令时,得到的值就很好。 在此处输入图片说明

我也知道Execute Async JavaScript命令,但是它看起来很复杂,我不知道它是如何工作的。请有人帮忙。

查看更多

提问者
Gie
被浏览
73
asprtrmp 2020-02-05 15:44

尝试:

${search_result}=    Execute JavaScript    return floatMaster.querySelectorAll('#gContact_searcResultshWindow .gContactDetailClientListDiv .gContactListName')[${index}].innerText