簡體   English   中英

為什么會出現“無效的正則表達式標志”錯誤?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM