Javascript Behat/Mink无法模拟页脚中的单击按钮
尝试对页脚中的项目使用“Then I press”(用于按钮)或“Then I follow”(用于链接)正则表达式失败,错误为“未找到id为| link | name的元素/链接…”。例如,我在以下公共网站上发现了此异常:earthdata.nasa.gov网站(我们的网站尚未激活)。屏幕左侧显示“反馈”的按钮不可点击(原文如此)Javascript Behat/Mink无法模拟页脚中的单击按钮,javascript,behat,mink,Javascript,Behat,Mink,尝试对页脚中的项目使用“Then I press”(用于按钮)或“Then I follow”(用于链接)正则表达式失败,错误为“未找到id为| link | name的元素/链接…”。例如,我在以下公共网站上发现了此异常:earthdata.nasa.gov网站(我们的网站尚未激活)。屏幕左侧显示“反馈”的按钮不可点击(原文如此) 我正在对selenium 2.29.0服务器运行测试。如何扩展Mink,使其能够定位并“单击”上面提到的“反馈”按钮之类的链接?您可以使用XPath来单击链接,而不
我正在对selenium 2.29.0服务器运行测试。如何扩展Mink,使其能够定位并“单击”上面提到的“反馈”按钮之类的链接?您可以使用XPath来单击链接,而不是使用id来单击链接。XPath是在DOM中标识对象的通用方法,因此它总是有效的 对于那些没有使用Behat的用户,请使用此链接阅读更多信息。它基本上是对Selenium工具的包装 并使用此选项访问Selenium web自动化测试站点: 编辑: 伊恩:多亏了麦基弗的指点,这里有了解决方案:
你的问题是什么?你试过什么?你的密码在哪里?另外,NASA网站上的反馈按钮对我来说也很好,感谢你的指点。下面是上面插入的一个示例实现。
/** Click on the element with the provided xpath query
*
* @When /^I click on the element with xpath "([^"]*)"$/
*/
public function iClickOnTheElementWithXPath($xpath)
{
$session = $this->getSession(); // get the mink session
$element = $session->getPage()->find(
'xpath',
$session->getSelectorsHandler()->selectorToXpath('xpath', $xpath)
); // runs the actual query and returns the element
// errors must not pass silently
if (null === $element) {
throw new \InvalidArgumentException(sprintf('Could not evaluate XPath: "%s"', $xpath));
}
// ok, let's click on it
$element->click();
}