我正在使用这种介质尝试为硒创建自动填充物...我正在使用正则表达式并遍历所有输入,这是最好的方法吗?
到目前为止,我已经使用了谷歌使用的正则表达式。
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"
}
};