如何将通配符或正则表达式合并到Selenium测试中?

问题描述 投票:0回答:1

我有一个用javascript编写的非常简单的Nightwatch测试,其中一部分是验证页面的URL是否正确。每次重新提交页面时,URL都会包含一个随机数字字符串,此数字字符串将更改。 URL的其余部分是静态的并且已经考虑在内。

我一直在寻找和阅读,但仍然没有找到一个有效的解决方案,但我无法想象要解决的问题是罕见的还是困难的。我在javascript上很新,所以我可能会忽略一些简单的东西,但我真的可以使用一些帮助。

javascript selenium url automation
1个回答
0
投票

您可以使用正则表达式来验证URL模式。使用\d+匹配任意数量的数字。

例如,如果您要匹配的URL是www.example.com/path/123,其中123是动态的并且可以更改,您可以使用以下正则表达式来测试它。

var url = "www.example.com/path/123";
var regex = /www\.example\.com\/path\/\d+/;
regex.test(url)

在这里,regex.test(url)将返回true,用于示例中显示的URL以及URL,如www.example.com/path/111www.example.com/path/4等。

您可以进一步改进正则表达式,以确保它从www开始,在正则表达式的开头使用^,如/^www\.example\.com\/path\/\d+/

阅读有关正则表达式here的更多信息

编辑:

这是一个JSFiddle的链接,我刚刚用相同的代码编写,读取在input字段中给出的URL,并使用正则表达式测试其模式,并根据结果显示alerttruefalse

在你的情况下,我猜你正在使用selenium读取当前的URL而不是从input读取它。并且您必须根据您正在测试的URL更改正则表达式。

您可以在input字段中提供要测试的URL,并在JSFiddle中修改正则表达式以进行测试。

© www.soinside.com 2019 - 2024. All rights reserved.