我正在使用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

09-10 05:12
查看更多