PhP 函数来验证 Xpath 或 CSS - Behat
PhP function to validate Xpath or CSS - Behat
我在 Behat 上有函数 findElements
,它可以验证我作为参数传递的是 Xpath 还是 CSS 选择器。这是验证部分:
// If it starts with //, it's a xpath
if (preg_match("/^\/\/.*|^\(.*\)\[(\d+|last\(\))\]$/", $selector) === 1) {
$type = 'xpath';
} else {
$type = 'css';
}
问题是: 有时,我需要像这样使用 Xpath:
(//div[@class='views-element-container form-group'])[1]/div/div/h3
它不是以 //
开头,因此验证认为这是一个 CSS 选择器,而不是 Xpath。
我需要的: 包括在 Xpath 也可以以 (//
.
开头的验证中
谢谢!
只需在正则表达式的开头添加一个可能的 (
,方法是在插入符后添加 \(?
,如下所示:
preg_match("/^\(?\/\/.*|^\(.*\)\[(\d+|last\(\))\]$/", $selector)
我在 Behat 上有函数 findElements
,它可以验证我作为参数传递的是 Xpath 还是 CSS 选择器。这是验证部分:
// If it starts with //, it's a xpath
if (preg_match("/^\/\/.*|^\(.*\)\[(\d+|last\(\))\]$/", $selector) === 1) {
$type = 'xpath';
} else {
$type = 'css';
}
问题是: 有时,我需要像这样使用 Xpath:
(//div[@class='views-element-container form-group'])[1]/div/div/h3
它不是以 //
开头,因此验证认为这是一个 CSS 选择器,而不是 Xpath。
我需要的: 包括在 Xpath 也可以以 (//
.
谢谢!
只需在正则表达式的开头添加一个可能的 (
,方法是在插入符后添加 \(?
,如下所示:
preg_match("/^\(?\/\/.*|^\(.*\)\[(\d+|last\(\))\]$/", $selector)