File tree Expand file tree Collapse file tree 3 files changed +27
-7
lines changed Expand file tree Collapse file tree 3 files changed +27
-7
lines changed Original file line number Diff line number Diff line change 10
10
final class CssSelector implements Selector
11
11
{
12
12
/** @var string */
13
- private $ expression ;
13
+ private $ expressionEncoded ;
14
14
15
15
public function __construct (string $ expression )
16
16
{
17
- $ this ->expression = $ expression ;
17
+ $ this ->expressionEncoded = \json_encode (
18
+ $ expression ,
19
+ \JSON_UNESCAPED_SLASHES
20
+ | \JSON_UNESCAPED_UNICODE
21
+ | \JSON_THROW_ON_ERROR
22
+ );
18
23
}
19
24
20
25
public function expressionCount (): string
21
26
{
22
- return \sprintf ('document.querySelectorAll("%s").length ' , $ this ->expression );
27
+ return \sprintf (
28
+ 'document.querySelectorAll(%s).length ' ,
29
+ $ this ->expressionEncoded
30
+ );
23
31
}
24
32
25
33
public function expressionFindOne (int $ position ): string
26
34
{
27
- return \sprintf ('document.querySelectorAll("%s")[%d] ' , $ this ->expression , $ position - 1 );
35
+ return \sprintf (
36
+ 'document.querySelectorAll(%s)[%d] ' ,
37
+ $ this ->expressionEncoded ,
38
+ $ position - 1
39
+ );
28
40
}
29
41
}
Original file line number Diff line number Diff line change 21
21
*/
22
22
class PageTest extends BaseTestCase
23
23
{
24
- private const WAIT_FOR_ELEMENT_HTML = '<div data-name="el">content </div> ' ;
24
+ private const WAIT_FOR_ELEMENT_HTML = '<div data-name="el">content1</div><div data-name=""el"">content2 </div> ' ;
25
25
private const WAIT_FOR_ELEMENT_RESOURCE_FILE = 'elementLoad.html ' ;
26
26
27
27
public function testSetViewport (): void
@@ -441,7 +441,9 @@ public function testWaitUntilContainsElement(): void
441
441
442
442
self ::assertStringNotContainsString (self ::WAIT_FOR_ELEMENT_HTML , $ page ->getHtml ());
443
443
444
- $ page ->waitUntilContainsElement ('div[data-name=\"el\"] ' );
444
+ $ page ->waitUntilContainsElement ('div[data-name="el"] ' ); // search for <div data-name="el">
445
+ $ page ->waitUntilContainsElement ('div[data-name=el] ' ); // search for <div data-name="el">
446
+ $ page ->waitUntilContainsElement ('div[data-name=\"el\"] ' ); // search for <div data-name=""el"'>
445
447
446
448
self ::assertStringContainsString (self ::WAIT_FOR_ELEMENT_HTML , $ page ->getHtml ());
447
449
}
Original file line number Diff line number Diff line change @@ -11,9 +11,15 @@ <h1>page a</h1>
11
11
let el = document . createElement ( 'div' ) ;
12
12
13
13
el . dataset . name = 'el' ;
14
- el . innerHTML = 'content ' ;
14
+ el . innerHTML = 'content1 ' ;
15
15
16
16
document . body . appendChild ( el )
17
+
18
+ let el2 = document . createElement ( 'div' ) ;
19
+
20
+ el2 . dataset . name = '"el"' ;
21
+ el2 . innerHTML = 'content2' ;
22
+ document . body . appendChild ( el2 )
17
23
} , 500 )
18
24
</ script >
19
25
</ html >
You can’t perform that action at this time.
0 commit comments