@@ -54,18 +54,142 @@ const xml = `<body>
54
54
</div>
55
55
<input type="hidden" name="return_url" value="" id="return_url" />
56
56
57
- <div class="ps-submenu-root">
58
- <ul class="ps-submenu-root">
59
- <li class="ps-menu-button">Adhemar da Silva</li>
60
- <li class="ps-menu-button">HelloWorld</li>
61
- <li class="ps-menu-button">Hallo</li>
62
- </ul>
63
- <ul class="ps-submenu-root">
64
- <li class="ps-menu-button">Adhemar da Silva</li>
65
- <li class="ps-menu-button">HelloWorld</li>
66
- <li class="ps-menu-button">Authoring</li>
67
- </ul>
68
- </div>
57
+ <ul class="css-ewdv3l">
58
+ <li class="ps-menuitem-root css-dq4uaz">
59
+ <a
60
+ aria-current="page"
61
+ class="ps-menu-button active"
62
+ data-testid="ps-menu-button-test-id"
63
+ tabindex="0"
64
+ title="aaa"
65
+ href="/"
66
+ ><span class="ps-menu-icon css-2wa2k3"
67
+ ><i aria-hidden="true" class="icon home lg outline"></i></span
68
+ ><span class="ps-menu-label css-12w9als">aaa</span></a
69
+ >
70
+ </li>
71
+ <li class="ps-menuitem-root ps-submenu-root css-x7nyah">
72
+ <a
73
+ class="ps-menu-button"
74
+ data-testid="ps-menu-button-test-id"
75
+ title="Dashboard"
76
+ tabindex="0"
77
+ ><span class="ps-menu-icon css-2wa2k3"
78
+ ><i
79
+ aria-hidden="true"
80
+ class="icon tachometer alternate"
81
+ ></i></span
82
+ ><span class="ps-menu-label css-12w9als">aaa</span
83
+ ><span class="ps-submenu-expand-icon css-1cuxlhl"
84
+ ><span class="css-honxw6"></span></span
85
+ ></a>
86
+ </li>
87
+ <li class="ps-menuitem-root ps-submenu-root css-x7nyah">
88
+ <a
89
+ class="ps-menu-button"
90
+ data-testid="ps-menu-button-test-id"
91
+ title="aaa"
92
+ tabindex="0"
93
+ ><span class="ps-menu-icon css-2wa2k3"
94
+ ><i aria-hidden="true" class="icon books"></i></span
95
+ ><span class="ps-menu-label css-12w9als">Authoring</span
96
+ ><span class="ps-submenu-expand-icon css-1cuxlhl"
97
+ ><span class="css-honxw6"></span></span
98
+ ></a>
99
+ </li>
100
+ <li class="ps-menuitem-root ps-submenu-root css-x7nyah">
101
+ <a
102
+ class="ps-menu-button"
103
+ data-testid="ps-menu-button-test-id"
104
+ title="aaa"
105
+ tabindex="0"
106
+ ><span class="ps-menu-icon css-2wa2k3"
107
+ ><i aria-hidden="true" class="icon ballot check"></i></span
108
+ ><span class="ps-menu-label css-12w9als">aaa</span
109
+ ><span class="ps-submenu-expand-icon css-1cuxlhl"
110
+ ><span class="css-honxw6"></span></span
111
+ ></a>
112
+ </li>
113
+ <li class="ps-menuitem-root ps-submenu-root css-x7nyah">
114
+ <a
115
+ class="ps-menu-button"
116
+ data-testid="ps-menu-button-test-id"
117
+ title="aaa"
118
+ tabindex="0"
119
+ ><span class="ps-menu-icon css-2wa2k3"
120
+ ><i aria-hidden="true" class="icon book reader"></i></span
121
+ ><span class="ps-menu-label css-12w9als">aaa</span
122
+ ><span class="ps-submenu-expand-icon css-1cuxlhl"
123
+ ><span class="css-honxw6"></span></span
124
+ ></a>
125
+ </li>
126
+ <li class="ps-menuitem-root ps-submenu-root css-x7nyah">
127
+ <a
128
+ class="ps-menu-button"
129
+ data-testid="ps-menu-button-test-id"
130
+ title="aaa"
131
+ tabindex="0"
132
+ ><span class="ps-menu-icon css-2wa2k3"
133
+ ><i aria-hidden="true" class="icon school"></i></span
134
+ ><span class="ps-menu-label css-12w9als">aaa</span
135
+ ><span class="ps-submenu-expand-icon css-1cuxlhl"
136
+ ><span class="css-honxw6"></span></span
137
+ ></a>
138
+ </li>
139
+ <li class="ps-menuitem-root ps-submenu-root css-x7nyah">
140
+ <a
141
+ class="ps-menu-button"
142
+ data-testid="ps-menu-button-test-id"
143
+ title="aaa"
144
+ tabindex="0"
145
+ ><span class="ps-menu-icon css-2wa2k3"
146
+ ><i aria-hidden="true" class="icon user"></i></span
147
+ ><span class="ps-menu-label css-12w9als">aaa</span
148
+ ><span class="ps-submenu-expand-icon css-1cuxlhl"
149
+ ><span class="css-honxw6"></span></span
150
+ ></a>
151
+ </li>
152
+ <li class="ps-menuitem-root ps-submenu-root css-x7nyah">
153
+ <a
154
+ class="ps-menu-button"
155
+ data-testid="ps-menu-button-test-id"
156
+ title="aaa"
157
+ tabindex="0"
158
+ ><span class="ps-menu-icon css-2wa2k3"
159
+ ><i aria-hidden="true" class="icon cog"></i></span
160
+ ><span class="ps-menu-label css-12w9als">aaa</span
161
+ ><span class="ps-submenu-expand-icon css-1cuxlhl"
162
+ ><span class="css-honxw6"></span></span
163
+ ></a>
164
+ </li>
165
+ <li class="ps-menuitem-root ps-submenu-root css-x7nyah">
166
+ <a
167
+ class="ps-menu-button"
168
+ data-testid="ps-menu-button-test-id"
169
+ title="aaa"
170
+ tabindex="0"
171
+ ><span class="ps-menu-icon css-2wa2k3"
172
+ ><i aria-hidden="true" class="icon tablet alternate"></i></span
173
+ ><span class="ps-menu-label css-12w9als">aaa</span
174
+ ><span class="ps-submenu-expand-icon css-1cuxlhl"
175
+ ><span class="css-honxw6"></span></span
176
+ ></a>
177
+ </li>
178
+ <li class="ps-menuitem-root ps-submenu-root css-x7nyah">
179
+ <a
180
+ class="ps-menu-button"
181
+ data-testid="ps-menu-button-test-id"
182
+ title="aaa"
183
+ tabindex="0"
184
+ ><span class="ps-menu-icon css-2wa2k3"
185
+ ><i aria-hidden="true" class="icon tools"></i></span
186
+ ><span class="ps-menu-label css-12w9als">aaa</span
187
+ ><span class="ps-submenu-expand-icon css-1cuxlhl"
188
+ ><span class="css-honxw6"></span></span
189
+ ></a>
190
+ </li>
191
+ </ul>
192
+
69
193
</body>` ;
70
194
71
195
describe ( 'Locator' , ( ) => {
@@ -294,13 +418,11 @@ describe('Locator', () => {
294
418
} ) ;
295
419
296
420
it ( 'should be able to locate complicated locator' , ( ) => {
297
- const l = Locator . build ( '.ps-menu-button' )
298
- . withText ( 'Authoring' )
299
- . inside ( '.ps-submenu-root:nth-child(2)' ) ;
421
+ const l = Locator . build ( '.ps-menu-button' ) . withText ( 'Authoring' ) . inside ( '.ps-submenu-root:nth-child(3)' ) ;
300
422
301
423
const nodes = xpath . select ( l . toXPath ( ) , doc ) ;
302
424
expect ( nodes ) . to . have . length ( 1 , l . toXPath ( ) ) ;
303
- expect ( nodes [ 0 ] . firstChild . data ) . to . eql ( 'Authoring' , l . toXPath ( ) ) ;
425
+ expect ( nodes [ 0 ] . firstChild . nextSibling . firstChild . data ) . to . eql ( 'Authoring' , l . toXPath ( ) ) ;
304
426
} ) ;
305
427
306
428
it ( 'should find element with last of type with text' , ( ) => {
0 commit comments