自动填充输入,自动填充

时间:2020-07-17 01:21:04

标签: c# selenium autofill

我正在使用这种介质尝试为硒创建自动填充物...我正在使用正则表达式并遍历所有输入,这是最好的方法吗?

到目前为止,我已经使用了谷歌使用的正则表达式。

public void Fill(Dictionary < string, string > values) {
    if (values == null) throw new NullReferenceException(nameof(values));

    var inputs = form.FindElements(By.XPath(".//inputs[not(contains(@style,'display:none'))]"));

    foreach(var input in inputs) {
        foreach(var rgx in regexs) {
            var match = Regex.Match(input.GetAttribute("outerHtml"), rgx.Value);

            if (match.Success) {
                foreach(var combo in values) {
                    match = Regex.Match(combo.Key, rgx.Value);

                    if (match.Success) {
                        input.SendKeys(combo.Value);
                        break;
                    }
                }

                break;
            }
        }
    }

}

private Dictionary < string,
string > regexs = new Dictionary < string,
string > () {
    {
        "EMAIL_REGEX",
        "e.?mail"
    },
    {
        "USERNAME_REGEX",
        "user.?name|user.?id"
    },
    {
        "PASSWORD_REGEX",
        "password|pwd|pass"
    },
    {
        "FULL_NAME_REGEX",
        "^name|full.?name|your.?name|customer.?name|bill.?name|ship.?name|name.*first.*last|firstandlastname"
    },
    {
        "FIRST_NAME_REGEX",
        "first.*name|initials|fname|first$|given.*name"
    },
    {
        "LAST_NAME_REGEX",
        @"last.*name|lname|surname(?!\\d)|last$|secondname|family.*name"
    }
};

0 个答案:

没有答案