Skip to content

Commit ebc506f

Browse files
committed
MC-5490: Resolve Map test failures with Page Builder
- Fixing broken google map selectors - Reworking selectors that still pass to be less dependent on google's rendered structure
1 parent 511ec8f commit ebc506f

File tree

2 files changed

+21
-21
lines changed

2 files changed

+21
-21
lines changed

app/code/Magento/PageBuilder/Test/Mftf/ActionGroup/ContentTypeMapActionGroup.xml

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -112,7 +112,7 @@
112112
<dontSeeElementInDOM selector="{{AddLocationForm.googleModalOkButton('1')}}" stepKey="dontSeeGoogleModalInDOM"/>
113113
<waitForElementVisible selector="{{AddLocationForm.base}}" stepKey="waitForMapVisible"/>
114114
<clickWithLeftButton selector="{{AddLocationForm.base}}" x="{{x}}" y="{{y}}" stepKey="clickMapToMovePin"/>
115-
<waitForElementVisible selector="{{AddLocationForm.pin}}" stepKey="waitForPinVisible"/>
115+
<waitForElementVisible selector="{{AddLocationForm.allPins}}" stepKey="waitForPinVisible"/>
116116
<wait time="2" stepKey="waitForPinMove"/>
117117
</actionGroup>
118118
<actionGroup name="moveMapPinByDraggingAndDroppingPin">
@@ -139,7 +139,7 @@
139139
<conditionalClick selector="{{page.googleModalOkButton(index)}}" dependentSelector="{{page.googleModalOkButton(index)}}" visible="true" stepKey="clickOkButton"/>
140140
<waitForElementNotVisible selector="{{page.googleModalOkButton(index)}}" stepKey="waitForGoogleModalGone"/>
141141
<dontSeeElementInDOM selector="{{page.googleModalOkButton(index)}}" stepKey="dontSeeGoogleModalInDOM"/>
142-
<waitForElementVisible selector="{{page.pin(index)}}" stepKey="waitForMapWithPin"/>
142+
<waitForElementVisible selector="{{page.allPins(index)}}" stepKey="waitForMapWithPin"/>
143143
</actionGroup>
144144
<actionGroup name="verifyNumberOfPinsOnMap">
145145
<arguments>
@@ -151,8 +151,8 @@
151151
<waitForElementNotVisible selector="{{page.googleModalOkButton(mapIndex)}}" stepKey="waitForGoogleModalGone"/>
152152
<dontSeeElementInDOM selector="{{page.googleModalOkButton(mapIndex)}}" stepKey="dontSeeGoogleModalInDOM"/>
153153
<waitForElementVisible selector="{{page.base(mapIndex)}}" stepKey="waitForMap"/>
154-
<waitForElementVisible selector="{{page.pin(mapIndex)}}" stepKey="waitForMapPin"/>
155-
<seeNumberOfElements selector="{{page.pin(mapIndex)}}" userInput="{{count}}" stepKey="seeNumberOfPins"/>
154+
<waitForElementVisible selector="{{page.allPins(mapIndex)}}" stepKey="waitForMapPin"/>
155+
<seeNumberOfElements selector="{{page.allPins(mapIndex)}}" userInput="{{count}}" stepKey="seeNumberOfPins"/>
156156
</actionGroup>
157157
<actionGroup name="dontSeeMapPin">
158158
<arguments>
@@ -162,7 +162,7 @@
162162
<conditionalClick selector="{{page.googleModalOkButton(index)}}" dependentSelector="{{page.googleModalOkButton(index)}}" visible="true" stepKey="clickOkButton"/>
163163
<waitForElementNotVisible selector="{{page.googleModalOkButton(index)}}" stepKey="waitForGoogleModalGone"/>
164164
<dontSeeElementInDOM selector="{{page.googleModalOkButton(index)}}" stepKey="dontSeeGoogleModalInDOM"/>
165-
<dontSeeElement selector="{{page.pin(index)}}" stepKey="dontSeeMapPin"/>
165+
<dontSeeElement selector="{{page.allPins(index)}}" stepKey="dontSeeMapPin"/>
166166
</actionGroup>
167167
<actionGroup name="validateMapButtons">
168168
<arguments>

app/code/Magento/PageBuilder/Test/Mftf/Section/PageBuilderMapSection.xml

Lines changed: 16 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -10,18 +10,18 @@
1010
xsi:noNamespaceSchemaLocation="urn:magento:mftf:Page/etc/SectionObject.xsd">
1111
<section name="MapOnStage">
1212
<element name="base" type="button" selector="(//div[contains(@class,'pagebuilder-map')])[{{arg1}}]" parameterized="true"/>
13-
<element name="clickablePin" type="button" selector="(//div[contains(@class,'pagebuilder-map')])[{{arg1}}]//div[@class='gmnoprint'][{{arg2}}]//map//area" parameterized="true"/>
14-
<element name="pin" type="button" selector="(//div[contains(@class,'pagebuilder-map')])[{{arg1}}]//div[@class='gmnoprint']/img[contains(@src,'spotlight-poi2_hdpi.png')]|(//div[contains(@class,'pagebuilder-map')])[{{arg1}}]//div[@class='gmnoprint']/img[contains(@src,'spotlight-poi2.png')]" parameterized="true"/>
13+
<element name="clickablePin" type="button" selector="(//div[contains(@class,'pagebuilder-map')][{{arg1}}]//map//area)[{{arg2}}]" parameterized="true"/>
14+
<element name="allPins" type="button" selector="(//div[contains(@class,'pagebuilder-map')])[{{arg1}}]//img[not(@usemap) and contains(@src,'spotlight-poi2_hdpi.png')]|(//div[contains(@class,'pagebuilder-map')])[{{arg1}}]//img[not(@usemap) and contains(@src,'spotlight-poi2.png')]" parameterized="true"/>
1515
<element name="pinLocations" type="button" selector="(//div[contains(@class,'pagebuilder-map')])[{{arg1}}]//div[contains(@style,'transform: matrix(1, 0, 0, 1, ')]" parameterized="true"/>
1616
<!-- Location Pin Configuration -->
1717
<element name="latitude" type="text" selector="(//div[contains(@class,'pagebuilder-map')])[{{arg1}}]//div[contains(@data-locations,'&quot;position&quot;:{&quot;latitude&quot;:{{arg2}},')]" parameterized="true"/>
1818
<element name="longitude" type="text" selector="(//div[contains(@class,'pagebuilder-map')])[{{arg1}}]//div[contains(@data-locations,',&quot;longitude&quot;:{{arg2}}}')]" parameterized="true"/>
1919
<element name="tooltipWindow" type="text" selector="(//div[contains(@class,'pagebuilder-map')])[{{arg1}}]//div[@class='gm-style-iw']" parameterized="true"/>
20-
<element name="tooltipWindowClose" type="text" selector="(//div[contains(@class,'pagebuilder-map')])[{{arg1}}]//div[@class='gm-style-iw']/../div/img[contains(@src,'mapcnt6.png')]/.." parameterized="true"/>
21-
<element name="locationName" type="text" selector="(//div[contains(@class,'pagebuilder-map')])[{{arg1}}]//div[@class='gm-style-iw']//div/h3/b[.='{{arg2}}']" parameterized="true"/>
22-
<element name="comment" type="text" selector="(//div[contains(@class,'pagebuilder-map')])[{{arg1}}]//div[@class='gm-style-iw']//div/p[.='{{arg2}}']" parameterized="true"/>
23-
<element name="phoneNumber" type="text" selector="(//div[contains(@class,'pagebuilder-map')])[{{arg1}}]//div[@class='gm-style-iw']//div/p[.='Phone: {{arg2}}']" parameterized="true"/>
24-
<element name="noPhoneNumber" type="text" selector="(//div[contains(@class,'pagebuilder-map')])[{{arg1}}]//div[@class='gm-style-iw']//div/p[.='{{arg2}}']" parameterized="true"/>
20+
<element name="tooltipWindowClose" type="text" selector="(//div[contains(@class,'pagebuilder-map')])[{{arg1}}]//div[@class='gm-style-iw']//..//button[@title='Close']" parameterized="true"/>
21+
<element name="locationName" type="text" selector="(//div[contains(@class,'pagebuilder-map')])[{{arg1}}]//div[@class='gm-style-iw']//h3/b[.='{{arg2}}']" parameterized="true"/>
22+
<element name="comment" type="text" selector="(//div[contains(@class,'pagebuilder-map')])[{{arg1}}]//div[@class='gm-style-iw']//p[.='{{arg2}}']" parameterized="true"/>
23+
<element name="phoneNumber" type="text" selector="(//div[contains(@class,'pagebuilder-map')])[{{arg1}}]//div[@class='gm-style-iw']//p[.='Phone: {{arg2}}']" parameterized="true"/>
24+
<element name="noPhoneNumber" type="text" selector="(//div[contains(@class,'pagebuilder-map')])[{{arg1}}]//div[@class='gm-style-iw']//p[.='{{arg2}}']" parameterized="true"/>
2525
<element name="addressCityStateZipCountry" type="text" selector="(//div[contains(@class,'pagebuilder-map')])[{{arg1}}]//div[@class='gm-style-iw']//span[.='{{arg2}}{{arg3}}{{arg4}}{{arg5}}{{arg6}}']" parameterized="true"/>
2626
<!-- Map Settings Configuration -->
2727
<element name="height" type="button" selector="(//div[contains(@class,'pagebuilder-map')])[{{arg1}}]//div[contains(@data-bind,'renderMap') and contains(@style,'height: {{arg2}}px;')]" parameterized="true"/>
@@ -52,19 +52,19 @@
5252
<element name="emptyMap" type="button" selector="(//div[@data-role='map'])[{{arg1}}][not(@src) and contains(@style,'display: none;')]" parameterized="true"/>
5353
<element name="base" type="button" selector="(//div[@data-role='map'])[{{arg1}}]" parameterized="true"/>
5454
<element name="baseJS" type="text" selector="document.querySelectorAll('div[data-role=\'map\']')[{{arg1}}]" parameterized="true"/>
55-
<element name="pin" type="button" selector="(//div[@data-role='map'])[{{arg1}}]//div[@class='gmnoprint']/img[contains(@src,'spotlight-poi2_hdpi.png')]|(//div[@data-role='map'])[{{arg1}}]//div[@class='gmnoprint']/img[contains(@src,'spotlight-poi2.png')]" parameterized="true"/>
56-
<element name="clickablePin" type="button" selector="(//div[@data-role='map'])[{{arg1}}]//div[@class='gmnoprint'][{{arg2}}]//map//area" parameterized="true"/>
55+
<element name="allPins" type="button" selector="(//div[@data-role='map'])[{{arg1}}]//img[not(@usemap) and contains(@src,'spotlight-poi2_hdpi.png')]|(//div[@data-role='map'])[{{arg1}}]//img[not(@usemap) and contains(@src,'spotlight-poi2.png')]" parameterized="true"/>
56+
<element name="clickablePin" type="button" selector="(//div[@data-role='map'][{{arg1}}]//map//area)[{{arg2}}]" parameterized="true"/>
5757
<element name="pinLocations" type="button" selector="(//div[@data-role='map'])[{{arg1}}]//div[contains(@style,'transform: matrix(1, 0, 0, 1, ')]" parameterized="true"/>
5858
<element name="zoom" type="button" selector="(//div[@data-role='map'])[{{arg1}}][@data-zoom='{{arg2}}']" parameterized="true"/>
5959
<!-- Location Pin Configuration -->
6060
<element name="latitude" type="text" selector="(//div[@data-role='map'])[{{arg1}}][contains(@data-locations,'&quot;position&quot;:{&quot;latitude&quot;:{{arg2}},')]" parameterized="true"/>
6161
<element name="longitude" type="text" selector="(//div[@data-role='map'])[{{arg1}}][contains(@data-locations,',&quot;longitude&quot;:{{arg2}}}')]" parameterized="true"/>
6262
<element name="tooltipWindow" type="text" selector="(//div[@data-role='map'])[{{arg1}}]//div[@class='gm-style-iw']" parameterized="true"/>
63-
<element name="tooltipWindowClose" type="text" selector="(//div[@data-role='map'])[{{arg1}}]//div[@class='gm-style-iw']/../div/img[contains(@src,'mapcnt6.png')]/.." parameterized="true"/>
64-
<element name="locationName" type="text" selector="(//div[@data-role='map'])[{{arg1}}]//div[@class='gm-style-iw']//div/h3/b[.='{{arg2}}']" parameterized="true"/>
65-
<element name="comment" type="text" selector="(//div[@data-role='map'])[{{arg1}}]//div[@class='gm-style-iw']//div/p[.='{{arg2}}']" parameterized="true"/>
66-
<element name="phoneNumber" type="text" selector="(//div[@data-role='map'])[{{arg1}}]//div[@class='gm-style-iw']//div/p[.='Phone: {{arg2}}']" parameterized="true"/>
67-
<element name="noPhoneNumber" type="text" selector="(//div[@data-role='map'])[{{arg1}}]//div[@class='gm-style-iw']//div/p[.='{{arg2}}']" parameterized="true"/>
63+
<element name="tooltipWindowClose" type="text" selector="(//div[@data-role='map'])[{{arg1}}]//div[@class='gm-style-iw']//..//button[@title='Close']" parameterized="true"/>
64+
<element name="locationName" type="text" selector="(//div[@data-role='map'])[{{arg1}}]//div[@class='gm-style-iw']//h3/b[.='{{arg2}}']" parameterized="true"/>
65+
<element name="comment" type="text" selector="(//div[@data-role='map'])[{{arg1}}]//div[@class='gm-style-iw']//p[.='{{arg2}}']" parameterized="true"/>
66+
<element name="phoneNumber" type="text" selector="(//div[@data-role='map'])[{{arg1}}]//div[@class='gm-style-iw']//p[.='Phone: {{arg2}}']" parameterized="true"/>
67+
<element name="noPhoneNumber" type="text" selector="(//div[@data-role='map'])[{{arg1}}]//div[@class='gm-style-iw']//p[.='{{arg2}}']" parameterized="true"/>
6868
<element name="addressCityStateZipCountry" type="text" selector="(//div[@data-role='map'])[{{arg1}}]//div[@class='gm-style-iw']//span[.='{{arg2}}{{arg3}}{{arg4}}{{arg5}}{{arg6}}']" parameterized="true"/>
6969
<!-- Map Settings Configuration -->
7070
<element name="height" type="button" selector="(//div[@data-role='map'])[{{arg1}}][contains(@style,'height: {{arg2}}px;')]" parameterized="true"/>
@@ -105,13 +105,13 @@
105105
<element name="base" type="button" selector="//div[@data-index='position']//div[@class='map-field']"/>
106106
<element name="baseJS" type="text" selector="document.querySelector('div[data-index=\'position\'] div.map-field')"/>
107107
<element name="clickablePin" type="button" selector="//div[@data-index='position']//div[@class='map-field']//div[@class='gmnoprint']//map//area"/>
108-
<element name="pin" type="button" selector="//div[@data-index='position']//div[@class='map-field']//div[@class='gmnoprint']/img[contains(@src,'spotlight-poi2_hdpi.png')]|//div[@data-index='position']//div[@class='map-field']//div[@class='gmnoprint']/img[contains(@src,'spotlight-poi2.png')]"/>
108+
<element name="allPins" type="button" selector="//div[@data-index='position']//div[@class='map-field']//img[not(@usemap) and contains(@src,'spotlight-poi2_hdpi.png')]|//div[@data-index='position']//div[@class='map-field']//img[not(@usemap) and contains(@src,'spotlight-poi2.png')]"/>
109109
<element name="pinLocations" type="text" selector="(//div[@data-index='position']//div[contains(@style,'transform: matrix(1, 0, 0, 1, ')])[{{arg1}}]" parameterized="true"/>
110110
<element name="tooltipWindow" type="text" selector="//div[@data-index='position']//div[@class='map-field']//div[@class='gm-style-iw']"/>
111111
<element name="helperText" type="button" selector="//div[@data-index='position']//span[.='You can move the pin by clicking or dragging it where you want. To alter the zoom please use the controls.']"/>
112112
<element name="warningMessage" type="text" selector="//div[contains(@class, 'pagebuilder_modal_form_pagebuilder_modal_form_modal')]//div[contains(@class, 'message-warning')]"/>
113113
<element name="warningMessageLink" type="button" selector="//div[contains(@class, 'pagebuilder_modal_form_pagebuilder_modal_form_modal')]//div[contains(@class, 'message-warning')]//a"/>
114-
<element name="renderedMap" type="button" selector="//div[@data-index='position']//div[@class='map-field']/div/div[contains(@class, 'gm-style')]"/>
114+
<element name="renderedMap" type="button" selector="//div[@data-index='position']//div[@class='map-field']//div[contains(@class, 'gm-style')]"/>
115115
<!-- Map Buttons -->
116116
<element name="googleModalOkButton" type="button" selector="//aside//button[@class='dismissButton' and .='OK'][{{arg1}}]" parameterized="true"/>
117117
<element name="fullScreen" type="button" selector="(//div[@data-index='position']//div[@class='map-field']//button[@title='Toggle fullscreen view'])[{{arg1}}]" parameterized="true"/>

0 commit comments

Comments
 (0)