9 use Magento\Mtf\Client\Locator;
10 use Magento\Mtf\Client\Element\SimpleElement;
11 use Magento\Mtf\Fixture\FixtureInterface;
12 use Magento\Mtf\ObjectManager;
26 "cc_number" =>
"//*[@id='braintree-hosted-field-number']",
27 "cc_exp_month" =>
"//*[@id='braintree-hosted-field-expirationMonth']",
28 "cc_exp_year" =>
"//*[@id='braintree-hosted-field-expirationYear']",
29 "cc_cid" =>
"//*[@id='braintree-hosted-field-cvv']",
46 public function fill(FixtureInterface $fixture, SimpleElement
$element =
null)
48 $this->braintreeForm = array_intersect_key($this->braintreeForm, $fixture->getData());
49 $mapping = $this->dataMapping($fixture->getData());
50 foreach ($this->braintreeForm as $field => $iframe) {
51 $element = $this->browser->find(
'body');
52 $this->browser->waitUntil(
53 function () use (
$element, $iframe) {
54 $fieldElement =
$element->find($iframe, Locator::SELECTOR_XPATH);
55 return $fieldElement->isVisible() ? true :
null;
58 $iframeLocator = ObjectManager::getInstance()->create(
62 'strategy' => Locator::SELECTOR_XPATH
65 $this->browser->switchToFrame($iframeLocator);
66 $element = $this->browser->find(
'body');
67 $this->browser->waitUntil(
69 $fieldElement =
$element->find(
'input');
70 return $fieldElement->isVisible() ? true :
null;
73 $this->_fill([$mapping[$field]],
$element);
74 $this->browser->switchToFrame();
87 foreach (array_keys($messages) as $field) {
89 $errorElement = $this->_rootElement->find($selector, Locator::SELECTOR_XPATH);
90 $textMessages[$field] = $errorElement->isVisible() ? $errorElement->getText() :
null;