使用这两个网址:
Selenium::WebDriver::Error::ElementNotVisibleError: element not interactable
(Session info: chrome=71.0.3578.98)
(Driver info: chromedriver=2.43.600233
(523efee95e3d68b8719b3a1c83051aa63aa6b10d),platform=Linux 4.15.0-43-generic x86_64)
是否有一种解决方案可以匹配这两个网址,并在它们相似时返回true?
我尝试了以下方法,应该是最糟糕的解决方案:
const url1 = '/user/{username}/edit'
const url2 = '/user/harry/edit'
解决方案是使用PathToRegExp包!感谢@ChiragRavindra!
答案 0 :(得分:1)
您可以使用正则表达式测试网址
\/user\/
匹配/user/
\w+
匹配1个或多个单词字符([a-zA-Z0-9_]+
)\/edit
匹配/edit
const url1 = '/user/{username}/edit';
const urlCorrect = '/user/harry/edit';
const urlWrong = '/users/harry/edit';
//generate a regex string by escaping the slashes and changing word between curly brackets with {\w+}
var regexString = url1.replace(/\{\w+\}/g, '\\w+').replace(/\//g, '\\/');
console.log('generating regex: ' + regexString);
var regex = new RegExp(regexString);
//test using the generated regex
console.log(regex.test(urlCorrect));
console.log(regex.test(urlWrong));
答案 1 :(得分:-1)
我建议您看一下这个库 NPM - String similarity library
如果两个字符串相似,则库仅返回比较两个字符串的概率。 然后,您要根据您认为相同的百分比来设置阈值。