universal_html icon indicating copy to clipboard operation
universal_html copied to clipboard

Descendant combinator cannot be used after nth-child

Open simonkimi opened this issue 4 years ago • 0 comments

Hi! Thanks for your awsome package., but I encountered some problems in the following tests. Any ideas?

index.html

<!DOCTYPE html>
<html lang="en">
<body>
<div id="root">
    <div>
        <p class="title">title1</p>
        <p class="content">p1</p>
    </div>
    <div>
        <p class="title">title2</p>
        <p class="content">p2</p>
    </div>
</div>
</body>
</html>
import 'dart:io';
import 'package:universal_html/parsing.dart';

void main() {
  final file = File('index.html').readAsStringSync();
  final document = parseHtmlDocument(file);

  print(document.body!.querySelector('#root div:nth-child(1)'));
  /*
  * <div>
        <p class="first">p1</p>
        <p class="second">p1</p>
    </div>*/


  print(document.body!.querySelector('#root div:nth-child(1)>.content'));
  /*
  * <p class="content">p1</p>*/


  print(document.body!.querySelector('#root div:nth-child(1) .content'));
  /*
  * Unhandled exception:
Null check operator used on a null value
#0      _matchesNthChildSelector (package:universal_html/src/html/dom/css_selectors.dart:65:37)
#1      _matchesSimpleSelector (package:universal_html/src/html/dom/css_selectors.dart:309:18)
#2      _matchesSelector (package:universal_html/src/html/dom/css_selectors.dart:148:8)
#3      _matchesSelector (package:universal_html/src/html/dom/css_selectors.dart:178:13)
#4      _matchesSelectorGroup (package:universal_html/src/html/dom/css_selectors.dart:242:9)
#5      _ElementOrDocument.querySelectorAll.<anonymous closure> (package:universal_html/src/html/dom/node.dart:763:11)
#6      _ElementOrDocument._forEachElementInTree (package:universal_html/src/html/dom/node.dart:787:10)
#7      _ElementOrDocument.querySelectorAll (package:universal_html/src/html/dom/node.dart:762:5)*/
}

simonkimi avatar Nov 09 '21 04:11 simonkimi