我正在使用Behat测试第三方网站。我在购物车中有一个要删除的项目。一个确认弹出窗口显示,询问我是否真的想这样做。此对话框的结构如下:
<div>
<strong class="title">Remove item from shoppingcart</strong>
<p>Are you sure you want to delete this product?</p>
<div class="button-container">
<span class="button" data-confirm="true">Yes</span>
<span class="button alt right" data-mfp-close-link="true">No</span>
</div>
</div>
我可以使用xpath和以下代码选择范围:
public function iConfirmTheWindow()
{
$session = $this->getSession();
$element = $session->getPage()->find(
'xpath',
$session->getSelectorsHandler()->selectorToXpath('css', 'span.button')
);
if (null === $element) {
throw new \InvalidArgumentException(sprintf('Could not find confirmation window'));
}
$element->click();
}
选择有效,但Behat似乎无法单击范围。
supports clicking on links and submit or reset buttons only. But "span" provided
我需要点击这个项目,我如何重写我的函数以便点击它?
最佳答案
我假设您有一个行为驱动程序来解释JavaScript。因此,我将@javascript
添加到功能中:
就像这样:
@javascript
Scenario: Create new account
Given I am logged in as "user" user
And I am on "/user/settings"
And I click the ".new_account" element