/** * Returns the item price for the specified product. * * @param InjectableFixture $product * @return array|string */ public function getPrice(InjectableFixture $product) { $productName = $product->getName(); if ($product instanceof ConfigurableProduct) { // Find the price for the specific configurable product that was purchased $configurableAttributes = $product->getConfigurableAttributes(); $productOptions = $product->getCheckoutData()['options']['configurable_options']; $checkoutOption = reset($productOptions); $attributeKey = $checkoutOption['title']; $optionKey = $checkoutOption['value']; $attributeValue = $configurableAttributes[$attributeKey]['label']['value']; $optionValue = $configurableAttributes[$attributeKey][$optionKey]['option_label']['value']; $productDisplay = $productName . ' SKU: ' . $product->getVariationSku($checkoutOption); $productDisplay .= ' ' . $attributeValue . ' ' . $optionValue; } else { $productDisplay = $productName . ' SKU: ' . $product->getSku(); } $selector = '//tr[normalize-space(td)="' . $productDisplay . '"]' . $this->priceSelector; return $this->_rootElement->find($selector, Locator::SELECTOR_XPATH)->getText(); }