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)