【发布时间】:2019-05-01 09:48:38
【问题描述】:
我正在尝试将 Javascript 片段插入网页,然后使用蓝色棱镜调用它。这样做的目的是分析从搜索中返回的元素,以确定整个流程流中的下一步。
我已经使用 IE 11 开发者控制台在目标网站上测试了 Javascript 代码,它可以正常工作。代码如下,以防有用。
function includes(stringToCheck, CharacterToSearchFor)
{
var found = new Boolean();
var splitString = stringToCheck.split("");
for (var index = 0; index < splitString.length; index++)
{
if(splitString[index] == CharacterToSearchFor)
{
return true;
}
}
return false;
}
function getPartners() //declare a function which can be called from BP. once called all code within the enclosing {} will be run
{
var searchResults = document.getElementsByClassName("findASolicitorListItem"); //search the web page for all elements with a specific tag and store them in a variable called searchResults.
if(searchResults.length == 0) // If the number
{
alert( "No Solicitors were found.");
}else if(searchResults.length == 1)
{
var innerSearchResults = searchResults[0].getElementsByTagName("span");
for(i = 0; i < innerSearchResults.length; i++)
{
var spanText = innerSearchResults[i].innerText.toString();
if((spanText != ""))
{
if(!includes(spanText, "|"))
{
alert("One Solicitor found. " + spanText);
}
}
}
}else if (searchResults.length > 1)
{
alert( "More than one solicitor was found. Manual Checking required.");
}
}
这存储在数据项中,并被传递到导航阶段(插入 Javascript 片段)参数。
PrintScreen of Insert Javascript Fragment stage
当这个阶段运行时,它成功地将 Javascript 函数注入到网页中。
然后我尝试调用这个插入的 javascript 片段
Printscreen of Invoke Javascript Function stage
当这个阶段运行时,我收到 Blue Prism 引发的以下错误消息。
内部:无法在“分析搜索结果”页面上的导航阶段“分析结果”中执行步骤 1 - 调用 javascript 方法时失败:来自 HRESULT 的异常:0x80020101-> 在 mshtml.HTMLWindow2Class.IHTMLWindow2_execScript(字符串代码,字符串语言) 在 BluePrism.ApplicationManager.HTML.clsHTMLDocument.InvokeJavascriptMethod(String methodname, String jsonargs, Object& retval, String& sErr)
我已搜索此错误代码并找到 this 答案,这表明代码存在问题,但是我可以手动运行此代码就好了。
是否有人在 BluePrism 中使用过这些方法,或者在谁能帮我解决之前看到此错误消息?
【问题讨论】: