[英]Why am I getting an “Invalid regular expression flags” error?
我在這個站點上查找了“無效的正則表達式標志”是什么以及為什么它出現在JavaScript中,但是這種特殊情況似乎與現有問題不匹配。
我正在為Robot Framework使用基於JavaScript的關鍵字( https://codereview.stackexchange.com/questions/175683/user-friendly-robot-framework-keywords-write-in-javascript ,它不完全像這樣,但是它使用相同的方法來調用JavaScript代碼)。 這是我正在使用的代碼。 機器人框架關鍵字:
Click By Text
[Arguments] ${text} ${iteration}=1
${tag} = Execute Javascript ${ABS_PATH}/${PROJECT}/External/ClickByText.js.ClickByText(${text}, ${iteration});
Click Element ${tag}
以及整個JavaScript文件。 我承認自己是JavaScript的新手,這就是為什么我敢肯定這個錯誤很簡單的原因。
function ClickByText(str, desired) {
var all = document.getElementsByTagName("*");
var instance = 0;
var result;
for (var i=0, max=all.length; i < max; i++) {
var thisElement = all[i];
if (thisElement.innerHTML === str) {
instance++;
if (instance === desired) {
result = "document.getElementsByTagName(\"*\")[" + i + "]";
break;
}
}
}
return result;
}
如果您碰巧確切地知道如何使該關鍵字起作用,那將是不錯的選擇,但是我特別在尋找為什么會出現該錯誤。 因為我正在使用PyCharm並以這種方式運行它,所以我什至不知道我正在使用哪條線。
編輯:修復了第4行上的字符串創建。
編輯:錯誤的全文:
WebDriverException: Message: unknown error: Runtime.evaluate threw exception: SyntaxError: Invalid regular expression flags
編輯:代碼的主要修訂。
在對我的代碼進行逐行的廣泛測試之后,我發現錯誤出在修改后的代碼的if (instance === desired)
中。 就像我說的,這很簡單。 我有太多等號,正確的代碼是if (instance == desired)
。
基於對我的原始問題的評論以及我在Stack Overflow上發現的其他問題,我認為“無效正則表達式標志”表明無論什么原因,表達式(例如===
)都是錯誤的。 根據我發現的內容,有時它可能比這更復雜,但顯然這是它的基礎。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.