Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/url/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Regex 如何使用Robot框架将URL与其中的可变部分相匹配_Regex_Url_Robotframework - Fatal编程技术网

Regex 如何使用Robot框架将URL与其中的可变部分相匹配

Regex 如何使用Robot框架将URL与其中的可变部分相匹配,regex,url,robotframework,Regex,Url,Robotframework,我试图确保在使用Robot Framework进行某些操作后,浏览器URL与特定模式匹配(并且具有特定值),但结果页面URL的某些部分每次都会更改,这些可变部分会导致脚本失败,我似乎无法使脚本通过 下面是一个假设的例子,说明我所追求的: URL:https://www.google.com/?gfe_rd=cr&ei=eCaTWLf0IO3k8AfGyouIBA#q=Robot+框架 在此URL中,“ei”参数(“eCaTWLf0IO3k8AfGyouIBA”)的内容是可变的。我希望脚本忽略该参

我试图确保在使用Robot Framework进行某些操作后,浏览器URL与特定模式匹配(并且具有特定值),但结果页面URL的某些部分每次都会更改,这些可变部分会导致脚本失败,我似乎无法使脚本通过

下面是一个假设的例子,说明我所追求的:

URL:
https://www.google.com/?gfe_rd=cr&ei=eCaTWLf0IO3k8AfGyouIBA#q=Robot+框架

在此URL中,“ei”参数(“eCaTWLf0IO3k8AfGyouIBA”)的内容是可变的。我希望脚本忽略该参数值,并在满足其他条件(与此问题无关)的情况下通过检查。因此,可能使用正则表达式,类似于:

URL:
https://www.google.com/?gfe_rd=cr&ei=.*#q=机器人+框架

我应该如何着手让这样的东西发挥作用呢?

试试下面的方法:

*** Settings ***
Library    Selenium2Library

*** Test Cases ***
Test
    Do Your Stuff Here With Browser
    ${url}    Get Location
    Should Match Regexp    ${url}    https://www.google.com/.*
请尝试以下操作:

*** Settings ***
Library    Selenium2Library

*** Test Cases ***
Test
    Do Your Stuff Here With Browser
    ${url}    Get Location
    Should Match Regexp    ${url}    https://www.google.com/.*

我让它工作了。问题是,在Robot框架中,转义是用双反斜杠(“\\”)而不是一个来完成的。将行更改为:

Should Match Regexp ${url} https://www\\.google\\.com/\\?gfe_rd=cr&ei=.*#q‌​=Robot\\+Framework 应匹配Regexp${url}https://www\\.google\\.com/\\?gfe\U rd=cr&ei=.*q‌​=机器人\\+框架
使脚本通过。

我让它开始工作。问题是,在Robot框架中,转义是用双反斜杠(“\\”)而不是一个来完成的。将行更改为:

Should Match Regexp ${url} https://www\\.google\\.com/\\?gfe_rd=cr&ei=.*#q‌​=Robot\\+Framework 应匹配Regexp${url}https://www\\.google\\.com/\\?gfe\U rd=cr&ei=.*q‌​=机器人\\+框架
使脚本通过。

这正是我一开始所做的,但这给了我:谷歌搜索|失败| | | | | |不匹配。*#q=Robot+Framework“您在regexp中转义了特殊字符吗<代码>\?下面是测试脚本中的精确一行:
应该匹配Regexp${url}https:\/\/www\.google\.fi\/\?gfe\u rd=cr&ei=.*q=Robot\+框架
我想说,
/
不是特殊字符。尝试使用这正是我一开始所做的,但这给了我:Google搜索| FAIL | | | | | | | | | | | | | | | | | | | |<代码>\?下面是测试脚本中的精确一行:
应该匹配Regexp${url}https:\/\/www\.google\.fi\/\?gfe\u rd=cr&ei=.*q=Robot\+框架
我想说,
/
不是特殊字符。尝试使用我假设这实际上是因为Robot框架在将URL字符串传递到SeleniumLibrary之前需要转义某些字符,然后SeleniumLibrary也需要转义某些字符,但是,也许有人对此有更多的信息,可以添加一条评论来证实或反驳这个假设?我认为Robot框架使用`\\`的原因是Python如何处理它。我认为这实际上是因为Robot框架在将URL字符串传递到SeleniumLibrary之前需要转义某些字符然后需要对某些字符进行转义,但可能有人对此有更多信息,可以添加注释来确认或反驳这一假设?我认为Robot框架使用“\\”的原因在于Python如何处理它。