ElementHandle.test-d.ts (26249B)
1 /** 2 * @license 3 * Copyright 2024 Google Inc. 4 * SPDX-License-Identifier: Apache-2.0 5 */ 6 import type {ElementHandle} from 'puppeteer'; 7 import {expectNotType, expectType} from 'tsd'; 8 9 declare const handle: ElementHandle; 10 11 { 12 { 13 { 14 expectType<ElementHandle<HTMLAnchorElement> | null>(await handle.$('a')); 15 expectNotType<ElementHandle<Element> | null>(await handle.$('a')); 16 } 17 { 18 expectType<ElementHandle<HTMLAnchorElement> | null>( 19 await handle.$('a#id'), 20 ); 21 expectNotType<ElementHandle<Element> | null>(await handle.$('a#id')); 22 } 23 { 24 expectType<ElementHandle<HTMLAnchorElement> | null>( 25 await handle.$('a.class'), 26 ); 27 expectNotType<ElementHandle<Element> | null>(await handle.$('a.class')); 28 } 29 { 30 expectType<ElementHandle<HTMLAnchorElement> | null>( 31 await handle.$('a[attr=value]'), 32 ); 33 expectNotType<ElementHandle<Element> | null>( 34 await handle.$('a[attr=value]'), 35 ); 36 } 37 { 38 expectType<ElementHandle<HTMLAnchorElement> | null>( 39 await handle.$('a:psuedo-class'), 40 ); 41 expectNotType<ElementHandle<Element> | null>( 42 await handle.$('a:pseudo-class'), 43 ); 44 } 45 { 46 expectType<ElementHandle<HTMLAnchorElement> | null>( 47 await handle.$('a:func(arg)'), 48 ); 49 expectNotType<ElementHandle<Element> | null>( 50 await handle.$('a:func(arg)'), 51 ); 52 } 53 } 54 { 55 { 56 expectType<ElementHandle<HTMLDivElement> | null>(await handle.$('div')); 57 expectNotType<ElementHandle<Element> | null>(await handle.$('div')); 58 } 59 { 60 expectType<ElementHandle<HTMLDivElement> | null>( 61 await handle.$('div#id'), 62 ); 63 expectNotType<ElementHandle<Element> | null>(await handle.$('div#id')); 64 } 65 { 66 expectType<ElementHandle<HTMLDivElement> | null>( 67 await handle.$('div.class'), 68 ); 69 expectNotType<ElementHandle<Element> | null>(await handle.$('div.class')); 70 } 71 { 72 expectType<ElementHandle<HTMLDivElement> | null>( 73 await handle.$('div[attr=value]'), 74 ); 75 expectNotType<ElementHandle<Element> | null>( 76 await handle.$('div[attr=value]'), 77 ); 78 } 79 { 80 expectType<ElementHandle<HTMLDivElement> | null>( 81 await handle.$('div:psuedo-class'), 82 ); 83 expectNotType<ElementHandle<Element> | null>( 84 await handle.$('div:pseudo-class'), 85 ); 86 } 87 { 88 expectType<ElementHandle<HTMLDivElement> | null>( 89 await handle.$('div:func(arg)'), 90 ); 91 expectNotType<ElementHandle<Element> | null>( 92 await handle.$('div:func(arg)'), 93 ); 94 } 95 } 96 { 97 { 98 expectType<ElementHandle<Element> | null>(await handle.$('some-custom')); 99 } 100 { 101 expectType<ElementHandle<Element> | null>( 102 await handle.$('some-custom#id'), 103 ); 104 } 105 { 106 expectType<ElementHandle<Element> | null>( 107 await handle.$('some-custom.class'), 108 ); 109 } 110 { 111 expectType<ElementHandle<Element> | null>( 112 await handle.$('some-custom[attr=value]'), 113 ); 114 } 115 { 116 expectType<ElementHandle<Element> | null>( 117 await handle.$('some-custom:pseudo-class'), 118 ); 119 } 120 { 121 expectType<ElementHandle<Element> | null>( 122 await handle.$('some-custom:func(arg)'), 123 ); 124 } 125 } 126 { 127 { 128 expectType<ElementHandle<Element> | null>(await handle.$('')); 129 } 130 { 131 expectType<ElementHandle<Element> | null>(await handle.$('#id')); 132 } 133 { 134 expectType<ElementHandle<Element> | null>(await handle.$('.class')); 135 } 136 { 137 expectType<ElementHandle<Element> | null>(await handle.$('[attr=value]')); 138 } 139 { 140 expectType<ElementHandle<Element> | null>( 141 await handle.$(':pseudo-class'), 142 ); 143 } 144 { 145 expectType<ElementHandle<Element> | null>(await handle.$(':func(arg)')); 146 } 147 } 148 { 149 { 150 expectType<ElementHandle<HTMLAnchorElement> | null>( 151 await handle.$('div > a'), 152 ); 153 expectNotType<ElementHandle<Element> | null>(await handle.$('div > a')); 154 } 155 { 156 expectType<ElementHandle<HTMLAnchorElement> | null>( 157 await handle.$('div > a#id'), 158 ); 159 expectNotType<ElementHandle<Element> | null>( 160 await handle.$('div > a#id'), 161 ); 162 } 163 { 164 expectType<ElementHandle<HTMLAnchorElement> | null>( 165 await handle.$('div > a.class'), 166 ); 167 expectNotType<ElementHandle<Element> | null>( 168 await handle.$('div > a.class'), 169 ); 170 } 171 { 172 expectType<ElementHandle<HTMLAnchorElement> | null>( 173 await handle.$('div > a[attr=value]'), 174 ); 175 expectNotType<ElementHandle<Element> | null>( 176 await handle.$('div > a[attr=value]'), 177 ); 178 } 179 { 180 expectType<ElementHandle<HTMLAnchorElement> | null>( 181 await handle.$('div > a:psuedo-class'), 182 ); 183 expectNotType<ElementHandle<Element> | null>( 184 await handle.$('div > a:pseudo-class'), 185 ); 186 } 187 { 188 expectType<ElementHandle<HTMLAnchorElement> | null>( 189 await handle.$('div > a:func(arg)'), 190 ); 191 expectNotType<ElementHandle<Element> | null>( 192 await handle.$('div > a:func(arg)'), 193 ); 194 } 195 } 196 { 197 { 198 expectType<ElementHandle<HTMLDivElement> | null>( 199 await handle.$('div > div'), 200 ); 201 expectNotType<ElementHandle<Element> | null>(await handle.$('div > div')); 202 } 203 { 204 expectType<ElementHandle<HTMLDivElement> | null>( 205 await handle.$('div > div#id'), 206 ); 207 expectNotType<ElementHandle<Element> | null>( 208 await handle.$('div > div#id'), 209 ); 210 } 211 { 212 expectType<ElementHandle<HTMLDivElement> | null>( 213 await handle.$('div > div.class'), 214 ); 215 expectNotType<ElementHandle<Element> | null>( 216 await handle.$('div > div.class'), 217 ); 218 } 219 { 220 expectType<ElementHandle<HTMLDivElement> | null>( 221 await handle.$('div > div[attr=value]'), 222 ); 223 expectNotType<ElementHandle<Element> | null>( 224 await handle.$('div > div[attr=value]'), 225 ); 226 } 227 { 228 expectType<ElementHandle<HTMLDivElement> | null>( 229 await handle.$('div > div:psuedo-class'), 230 ); 231 expectNotType<ElementHandle<Element> | null>( 232 await handle.$('div > div:pseudo-class'), 233 ); 234 } 235 { 236 expectType<ElementHandle<HTMLDivElement> | null>( 237 await handle.$('div > div:func(arg)'), 238 ); 239 expectNotType<ElementHandle<Element> | null>( 240 await handle.$('div > div:func(arg)'), 241 ); 242 } 243 } 244 { 245 { 246 expectType<ElementHandle<Element> | null>( 247 await handle.$('div > some-custom'), 248 ); 249 } 250 { 251 expectType<ElementHandle<Element> | null>( 252 await handle.$('div > some-custom#id'), 253 ); 254 } 255 { 256 expectType<ElementHandle<Element> | null>( 257 await handle.$('div > some-custom.class'), 258 ); 259 } 260 { 261 expectType<ElementHandle<Element> | null>( 262 await handle.$('div > some-custom[attr=value]'), 263 ); 264 } 265 { 266 expectType<ElementHandle<Element> | null>( 267 await handle.$('div > some-custom:pseudo-class'), 268 ); 269 } 270 { 271 expectType<ElementHandle<Element> | null>( 272 await handle.$('div > some-custom:func(arg)'), 273 ); 274 } 275 } 276 { 277 { 278 expectType<ElementHandle<Element> | null>(await handle.$('div > #id')); 279 } 280 { 281 expectType<ElementHandle<Element> | null>(await handle.$('div > .class')); 282 } 283 { 284 expectType<ElementHandle<Element> | null>( 285 await handle.$('div > [attr=value]'), 286 ); 287 } 288 { 289 expectType<ElementHandle<Element> | null>( 290 await handle.$('div > :pseudo-class'), 291 ); 292 } 293 { 294 expectType<ElementHandle<Element> | null>( 295 await handle.$('div > :func(arg)'), 296 ); 297 } 298 } 299 { 300 { 301 expectType<ElementHandle<HTMLAnchorElement> | null>( 302 await handle.$('div > a'), 303 ); 304 expectNotType<ElementHandle<Element> | null>(await handle.$('div > a')); 305 } 306 { 307 expectType<ElementHandle<HTMLAnchorElement> | null>( 308 await handle.$('div > a#id'), 309 ); 310 expectNotType<ElementHandle<Element> | null>( 311 await handle.$('div > a#id'), 312 ); 313 } 314 { 315 expectType<ElementHandle<HTMLAnchorElement> | null>( 316 await handle.$('div > a.class'), 317 ); 318 expectNotType<ElementHandle<Element> | null>( 319 await handle.$('div > a.class'), 320 ); 321 } 322 { 323 expectType<ElementHandle<HTMLAnchorElement> | null>( 324 await handle.$('div > a[attr=value]'), 325 ); 326 expectNotType<ElementHandle<Element> | null>( 327 await handle.$('div > a[attr=value]'), 328 ); 329 } 330 { 331 expectType<ElementHandle<HTMLAnchorElement> | null>( 332 await handle.$('div > a:psuedo-class'), 333 ); 334 expectNotType<ElementHandle<Element> | null>( 335 await handle.$('div > a:pseudo-class'), 336 ); 337 } 338 { 339 expectType<ElementHandle<HTMLAnchorElement> | null>( 340 await handle.$('div > a:func(arg)'), 341 ); 342 expectNotType<ElementHandle<Element> | null>( 343 await handle.$('div > a:func(arg)'), 344 ); 345 } 346 } 347 { 348 { 349 expectType<ElementHandle<HTMLDivElement> | null>( 350 await handle.$('div > div'), 351 ); 352 expectNotType<ElementHandle<Element> | null>(await handle.$('div > div')); 353 } 354 { 355 expectType<ElementHandle<HTMLDivElement> | null>( 356 await handle.$('div > div#id'), 357 ); 358 expectNotType<ElementHandle<Element> | null>( 359 await handle.$('div > div#id'), 360 ); 361 } 362 { 363 expectType<ElementHandle<HTMLDivElement> | null>( 364 await handle.$('div > div.class'), 365 ); 366 expectNotType<ElementHandle<Element> | null>( 367 await handle.$('div > div.class'), 368 ); 369 } 370 { 371 expectType<ElementHandle<HTMLDivElement> | null>( 372 await handle.$('div > div[attr=value]'), 373 ); 374 expectNotType<ElementHandle<Element> | null>( 375 await handle.$('div > div[attr=value]'), 376 ); 377 } 378 { 379 expectType<ElementHandle<HTMLDivElement> | null>( 380 await handle.$('div > div:psuedo-class'), 381 ); 382 expectNotType<ElementHandle<Element> | null>( 383 await handle.$('div > div:pseudo-class'), 384 ); 385 } 386 { 387 expectType<ElementHandle<HTMLDivElement> | null>( 388 await handle.$('div > div:func(arg)'), 389 ); 390 expectNotType<ElementHandle<Element> | null>( 391 await handle.$('div > div:func(arg)'), 392 ); 393 } 394 } 395 { 396 { 397 expectType<ElementHandle<Element> | null>( 398 await handle.$('div > some-custom'), 399 ); 400 } 401 { 402 expectType<ElementHandle<Element> | null>( 403 await handle.$('div > some-custom#id'), 404 ); 405 } 406 { 407 expectType<ElementHandle<Element> | null>( 408 await handle.$('div > some-custom.class'), 409 ); 410 } 411 { 412 expectType<ElementHandle<Element> | null>( 413 await handle.$('div > some-custom[attr=value]'), 414 ); 415 } 416 { 417 expectType<ElementHandle<Element> | null>( 418 await handle.$('div > some-custom:pseudo-class'), 419 ); 420 } 421 { 422 expectType<ElementHandle<Element> | null>( 423 await handle.$('div > some-custom:func(arg)'), 424 ); 425 } 426 } 427 { 428 { 429 expectType<ElementHandle<Element> | null>(await handle.$('div > #id')); 430 } 431 { 432 expectType<ElementHandle<Element> | null>(await handle.$('div > .class')); 433 } 434 { 435 expectType<ElementHandle<Element> | null>( 436 await handle.$('div > [attr=value]'), 437 ); 438 } 439 { 440 expectType<ElementHandle<Element> | null>( 441 await handle.$('div > :pseudo-class'), 442 ); 443 } 444 { 445 expectType<ElementHandle<Element> | null>( 446 await handle.$('div > :func(arg)'), 447 ); 448 } 449 } 450 } 451 452 { 453 { 454 { 455 expectType<Array<ElementHandle<HTMLAnchorElement>>>(await handle.$$('a')); 456 expectNotType<Array<ElementHandle<Element>>>(await handle.$$('a')); 457 } 458 { 459 expectType<Array<ElementHandle<HTMLAnchorElement>>>( 460 await handle.$$('a#id'), 461 ); 462 expectNotType<Array<ElementHandle<Element>>>(await handle.$$('a#id')); 463 } 464 { 465 expectType<Array<ElementHandle<HTMLAnchorElement>>>( 466 await handle.$$('a.class'), 467 ); 468 expectNotType<Array<ElementHandle<Element>>>(await handle.$$('a.class')); 469 } 470 { 471 expectType<Array<ElementHandle<HTMLAnchorElement>>>( 472 await handle.$$('a[attr=value]'), 473 ); 474 expectNotType<Array<ElementHandle<Element>>>( 475 await handle.$$('a[attr=value]'), 476 ); 477 } 478 { 479 expectType<Array<ElementHandle<HTMLAnchorElement>>>( 480 await handle.$$('a:psuedo-class'), 481 ); 482 expectNotType<Array<ElementHandle<Element>>>( 483 await handle.$$('a:pseudo-class'), 484 ); 485 } 486 { 487 expectType<Array<ElementHandle<HTMLAnchorElement>>>( 488 await handle.$$('a:func(arg)'), 489 ); 490 expectNotType<Array<ElementHandle<Element>>>( 491 await handle.$$('a:func(arg)'), 492 ); 493 } 494 } 495 { 496 { 497 expectType<Array<ElementHandle<HTMLDivElement>>>(await handle.$$('div')); 498 expectNotType<Array<ElementHandle<Element>>>(await handle.$$('div')); 499 } 500 { 501 expectType<Array<ElementHandle<HTMLDivElement>>>( 502 await handle.$$('div#id'), 503 ); 504 expectNotType<Array<ElementHandle<Element>>>(await handle.$$('div#id')); 505 } 506 { 507 expectType<Array<ElementHandle<HTMLDivElement>>>( 508 await handle.$$('div.class'), 509 ); 510 expectNotType<Array<ElementHandle<Element>>>( 511 await handle.$$('div.class'), 512 ); 513 } 514 { 515 expectType<Array<ElementHandle<HTMLDivElement>>>( 516 await handle.$$('div[attr=value]'), 517 ); 518 expectNotType<Array<ElementHandle<Element>>>( 519 await handle.$$('div[attr=value]'), 520 ); 521 } 522 { 523 expectType<Array<ElementHandle<HTMLDivElement>>>( 524 await handle.$$('div:psuedo-class'), 525 ); 526 expectNotType<Array<ElementHandle<Element>>>( 527 await handle.$$('div:pseudo-class'), 528 ); 529 } 530 { 531 expectType<Array<ElementHandle<HTMLDivElement>>>( 532 await handle.$$('div:func(arg)'), 533 ); 534 expectNotType<Array<ElementHandle<Element>>>( 535 await handle.$$('div:func(arg)'), 536 ); 537 } 538 } 539 { 540 { 541 expectType<Array<ElementHandle<Element>>>(await handle.$$('some-custom')); 542 } 543 { 544 expectType<Array<ElementHandle<Element>>>( 545 await handle.$$('some-custom#id'), 546 ); 547 } 548 { 549 expectType<Array<ElementHandle<Element>>>( 550 await handle.$$('some-custom.class'), 551 ); 552 } 553 { 554 expectType<Array<ElementHandle<Element>>>( 555 await handle.$$('some-custom[attr=value]'), 556 ); 557 } 558 { 559 expectType<Array<ElementHandle<Element>>>( 560 await handle.$$('some-custom:pseudo-class'), 561 ); 562 } 563 { 564 expectType<Array<ElementHandle<Element>>>( 565 await handle.$$('some-custom:func(arg)'), 566 ); 567 } 568 } 569 { 570 { 571 expectType<Array<ElementHandle<Element>>>(await handle.$$('')); 572 } 573 { 574 expectType<Array<ElementHandle<Element>>>(await handle.$$('#id')); 575 } 576 { 577 expectType<Array<ElementHandle<Element>>>(await handle.$$('.class')); 578 } 579 { 580 expectType<Array<ElementHandle<Element>>>( 581 await handle.$$('[attr=value]'), 582 ); 583 } 584 { 585 expectType<Array<ElementHandle<Element>>>( 586 await handle.$$(':pseudo-class'), 587 ); 588 } 589 { 590 expectType<Array<ElementHandle<Element>>>(await handle.$$(':func(arg)')); 591 } 592 } 593 { 594 { 595 expectType<Array<ElementHandle<HTMLAnchorElement>>>( 596 await handle.$$('div > a'), 597 ); 598 expectNotType<Array<ElementHandle<Element>>>(await handle.$$('div > a')); 599 } 600 { 601 expectType<Array<ElementHandle<HTMLAnchorElement>>>( 602 await handle.$$('div > a#id'), 603 ); 604 expectNotType<Array<ElementHandle<Element>>>( 605 await handle.$$('div > a#id'), 606 ); 607 } 608 { 609 expectType<Array<ElementHandle<HTMLAnchorElement>>>( 610 await handle.$$('div > a.class'), 611 ); 612 expectNotType<Array<ElementHandle<Element>>>( 613 await handle.$$('div > a.class'), 614 ); 615 } 616 { 617 expectType<Array<ElementHandle<HTMLAnchorElement>>>( 618 await handle.$$('div > a[attr=value]'), 619 ); 620 expectNotType<Array<ElementHandle<Element>>>( 621 await handle.$$('div > a[attr=value]'), 622 ); 623 } 624 { 625 expectType<Array<ElementHandle<HTMLAnchorElement>>>( 626 await handle.$$('div > a:psuedo-class'), 627 ); 628 expectNotType<Array<ElementHandle<Element>>>( 629 await handle.$$('div > a:pseudo-class'), 630 ); 631 } 632 { 633 expectType<Array<ElementHandle<HTMLAnchorElement>>>( 634 await handle.$$('div > a:func(arg)'), 635 ); 636 expectNotType<Array<ElementHandle<Element>>>( 637 await handle.$$('div > a:func(arg)'), 638 ); 639 } 640 } 641 { 642 { 643 expectType<Array<ElementHandle<HTMLDivElement>>>( 644 await handle.$$('div > div'), 645 ); 646 expectNotType<Array<ElementHandle<Element>>>( 647 await handle.$$('div > div'), 648 ); 649 } 650 { 651 expectType<Array<ElementHandle<HTMLDivElement>>>( 652 await handle.$$('div > div#id'), 653 ); 654 expectNotType<Array<ElementHandle<Element>>>( 655 await handle.$$('div > div#id'), 656 ); 657 } 658 { 659 expectType<Array<ElementHandle<HTMLDivElement>>>( 660 await handle.$$('div > div.class'), 661 ); 662 expectNotType<Array<ElementHandle<Element>>>( 663 await handle.$$('div > div.class'), 664 ); 665 } 666 { 667 expectType<Array<ElementHandle<HTMLDivElement>>>( 668 await handle.$$('div > div[attr=value]'), 669 ); 670 expectNotType<Array<ElementHandle<Element>>>( 671 await handle.$$('div > div[attr=value]'), 672 ); 673 } 674 { 675 expectType<Array<ElementHandle<HTMLDivElement>>>( 676 await handle.$$('div > div:psuedo-class'), 677 ); 678 expectNotType<Array<ElementHandle<Element>>>( 679 await handle.$$('div > div:pseudo-class'), 680 ); 681 } 682 { 683 expectType<Array<ElementHandle<HTMLDivElement>>>( 684 await handle.$$('div > div:func(arg)'), 685 ); 686 expectNotType<Array<ElementHandle<Element>>>( 687 await handle.$$('div > div:func(arg)'), 688 ); 689 } 690 } 691 { 692 { 693 expectType<Array<ElementHandle<Element>>>( 694 await handle.$$('div > some-custom'), 695 ); 696 } 697 { 698 expectType<Array<ElementHandle<Element>>>( 699 await handle.$$('div > some-custom#id'), 700 ); 701 } 702 { 703 expectType<Array<ElementHandle<Element>>>( 704 await handle.$$('div > some-custom.class'), 705 ); 706 } 707 { 708 expectType<Array<ElementHandle<Element>>>( 709 await handle.$$('div > some-custom[attr=value]'), 710 ); 711 } 712 { 713 expectType<Array<ElementHandle<Element>>>( 714 await handle.$$('div > some-custom:pseudo-class'), 715 ); 716 } 717 { 718 expectType<Array<ElementHandle<Element>>>( 719 await handle.$$('div > some-custom:func(arg)'), 720 ); 721 } 722 } 723 { 724 { 725 expectType<Array<ElementHandle<Element>>>(await handle.$$('div > #id')); 726 } 727 { 728 expectType<Array<ElementHandle<Element>>>( 729 await handle.$$('div > .class'), 730 ); 731 } 732 { 733 expectType<Array<ElementHandle<Element>>>( 734 await handle.$$('div > [attr=value]'), 735 ); 736 } 737 { 738 expectType<Array<ElementHandle<Element>>>( 739 await handle.$$('div > :pseudo-class'), 740 ); 741 } 742 { 743 expectType<Array<ElementHandle<Element>>>( 744 await handle.$$('div > :func(arg)'), 745 ); 746 } 747 } 748 { 749 { 750 expectType<Array<ElementHandle<HTMLAnchorElement>>>( 751 await handle.$$('div > a'), 752 ); 753 expectNotType<Array<ElementHandle<Element>>>(await handle.$$('div > a')); 754 } 755 { 756 expectType<Array<ElementHandle<HTMLAnchorElement>>>( 757 await handle.$$('div > a#id'), 758 ); 759 expectNotType<Array<ElementHandle<Element>>>( 760 await handle.$$('div > a#id'), 761 ); 762 } 763 { 764 expectType<Array<ElementHandle<HTMLAnchorElement>>>( 765 await handle.$$('div > a.class'), 766 ); 767 expectNotType<Array<ElementHandle<Element>>>( 768 await handle.$$('div > a.class'), 769 ); 770 } 771 { 772 expectType<Array<ElementHandle<HTMLAnchorElement>>>( 773 await handle.$$('div > a[attr=value]'), 774 ); 775 expectNotType<Array<ElementHandle<Element>>>( 776 await handle.$$('div > a[attr=value]'), 777 ); 778 } 779 { 780 expectType<Array<ElementHandle<HTMLAnchorElement>>>( 781 await handle.$$('div > a:psuedo-class'), 782 ); 783 expectNotType<Array<ElementHandle<Element>>>( 784 await handle.$$('div > a:pseudo-class'), 785 ); 786 } 787 { 788 expectType<Array<ElementHandle<HTMLAnchorElement>>>( 789 await handle.$$('div > a:func(arg)'), 790 ); 791 expectNotType<Array<ElementHandle<Element>>>( 792 await handle.$$('div > a:func(arg)'), 793 ); 794 } 795 } 796 { 797 { 798 expectType<Array<ElementHandle<HTMLDivElement>>>( 799 await handle.$$('div > div'), 800 ); 801 expectNotType<Array<ElementHandle<Element>>>( 802 await handle.$$('div > div'), 803 ); 804 } 805 { 806 expectType<Array<ElementHandle<HTMLDivElement>>>( 807 await handle.$$('div > div#id'), 808 ); 809 expectNotType<Array<ElementHandle<Element>>>( 810 await handle.$$('div > div#id'), 811 ); 812 } 813 { 814 expectType<Array<ElementHandle<HTMLDivElement>>>( 815 await handle.$$('div > div.class'), 816 ); 817 expectNotType<Array<ElementHandle<Element>>>( 818 await handle.$$('div > div.class'), 819 ); 820 } 821 { 822 expectType<Array<ElementHandle<HTMLDivElement>>>( 823 await handle.$$('div > div[attr=value]'), 824 ); 825 expectNotType<Array<ElementHandle<Element>>>( 826 await handle.$$('div > div[attr=value]'), 827 ); 828 } 829 { 830 expectType<Array<ElementHandle<HTMLDivElement>>>( 831 await handle.$$('div > div:psuedo-class'), 832 ); 833 expectNotType<Array<ElementHandle<Element>>>( 834 await handle.$$('div > div:pseudo-class'), 835 ); 836 } 837 { 838 expectType<Array<ElementHandle<HTMLDivElement>>>( 839 await handle.$$('div > div:func(arg)'), 840 ); 841 expectNotType<Array<ElementHandle<Element>>>( 842 await handle.$$('div > div:func(arg)'), 843 ); 844 } 845 } 846 { 847 { 848 expectType<Array<ElementHandle<Element>>>( 849 await handle.$$('div > some-custom'), 850 ); 851 } 852 { 853 expectType<Array<ElementHandle<Element>>>( 854 await handle.$$('div > some-custom#id'), 855 ); 856 } 857 { 858 expectType<Array<ElementHandle<Element>>>( 859 await handle.$$('div > some-custom.class'), 860 ); 861 } 862 { 863 expectType<Array<ElementHandle<Element>>>( 864 await handle.$$('div > some-custom[attr=value]'), 865 ); 866 } 867 { 868 expectType<Array<ElementHandle<Element>>>( 869 await handle.$$('div > some-custom:pseudo-class'), 870 ); 871 } 872 { 873 expectType<Array<ElementHandle<Element>>>( 874 await handle.$$('div > some-custom:func(arg)'), 875 ); 876 } 877 } 878 { 879 { 880 expectType<Array<ElementHandle<Element>>>(await handle.$$('div > #id')); 881 } 882 { 883 expectType<Array<ElementHandle<Element>>>( 884 await handle.$$('div > .class'), 885 ); 886 } 887 { 888 expectType<Array<ElementHandle<Element>>>( 889 await handle.$$('div > [attr=value]'), 890 ); 891 } 892 { 893 expectType<Array<ElementHandle<Element>>>( 894 await handle.$$('div > :pseudo-class'), 895 ); 896 } 897 { 898 expectType<Array<ElementHandle<Element>>>( 899 await handle.$$('div > :func(arg)'), 900 ); 901 } 902 } 903 } 904 905 { 906 expectType<void>( 907 await handle.$eval( 908 'a', 909 (element, int) => { 910 expectType<HTMLAnchorElement>(element); 911 expectType<number>(int); 912 }, 913 1, 914 ), 915 ); 916 expectType<void>( 917 await handle.$eval( 918 'div', 919 (element, int, str) => { 920 expectType<HTMLDivElement>(element); 921 expectType<number>(int); 922 expectType<string>(str); 923 }, 924 1, 925 '', 926 ), 927 ); 928 expectType<number>( 929 await handle.$eval( 930 'a', 931 (element, value) => { 932 expectType<HTMLAnchorElement>(element); 933 return value; 934 }, 935 1, 936 ), 937 ); 938 expectType<number>( 939 await handle.$eval( 940 'some-element', 941 (element, value) => { 942 expectType<Element>(element); 943 return value; 944 }, 945 1, 946 ), 947 ); 948 expectType<HTMLAnchorElement>( 949 await handle.$eval('a', element => { 950 return element; 951 }), 952 ); 953 expectType<unknown>(await handle.$eval('a', 'document')); 954 } 955 956 { 957 expectType<void>( 958 await handle.$$eval( 959 'a', 960 (elements, int) => { 961 expectType<HTMLAnchorElement[]>(elements); 962 expectType<number>(int); 963 }, 964 1, 965 ), 966 ); 967 expectType<void>( 968 await handle.$$eval( 969 'div', 970 (elements, int, str) => { 971 expectType<HTMLDivElement[]>(elements); 972 expectType<number>(int); 973 expectType<string>(str); 974 }, 975 1, 976 '', 977 ), 978 ); 979 expectType<number>( 980 await handle.$$eval( 981 'a', 982 (elements, value) => { 983 expectType<HTMLAnchorElement[]>(elements); 984 return value; 985 }, 986 1, 987 ), 988 ); 989 expectType<number>( 990 await handle.$$eval( 991 'some-element', 992 (elements, value) => { 993 expectType<Element[]>(elements); 994 return value; 995 }, 996 1, 997 ), 998 ); 999 expectType<HTMLAnchorElement[]>( 1000 await handle.$$eval('a', elements => { 1001 return elements; 1002 }), 1003 ); 1004 expectType<unknown>(await handle.$$eval('a', 'document')); 1005 } 1006 1007 { 1008 { 1009 expectType<ElementHandle<HTMLAnchorElement> | null>( 1010 await handle.waitForSelector('a'), 1011 ); 1012 expectNotType<ElementHandle<Element> | null>( 1013 await handle.waitForSelector('a'), 1014 ); 1015 } 1016 { 1017 expectType<ElementHandle<HTMLDivElement> | null>( 1018 await handle.waitForSelector('div'), 1019 ); 1020 expectNotType<ElementHandle<Element> | null>( 1021 await handle.waitForSelector('div'), 1022 ); 1023 } 1024 { 1025 expectType<ElementHandle<Element> | null>( 1026 await handle.waitForSelector('some-custom'), 1027 ); 1028 } 1029 }