我在做一个自动生成网页元素的CSS路径的逻辑时遇到了一个问题。
用例:当用户点击网页上的任何元素时,css选择器会自动生成。
当下一页相同时,这对于抓取文本很有效,但是当元素的顺序改变时就会出现问题。例如:
<html>
....
<body>
<div>ABC</div>
<div>DEF
<span>GHI</span>
<ul>
<li>123abc</li>
<li>123abc</li>
<li>xyz</li>
</ul>
</div>
</body>
</html> 假设我为包含"xyz“的第三个li元素生成一个CSS选择器,如下所示
body > div:nthchild(2) > ul > li:nthchild(3)
现在,如果页面发生更改,而新的HTML是:
<html>
....
<body>
<div>ABC</div>
<div>DEF
<span>GHI</span>
<ul>
<li>123abc</li>
<li>xyz</li>
</ul>
</div>
</body>
</html> 我使用上面生成的相同选择器(body > div:nthchild(2) > ul > li:nthchild(3)),这将返回null。
请记住,li元素没有任何类、ids和属性。它们只是包含li标记的纯文本。
目前,我使用以下属性来生成CSS选择器:标记名、id、类名和第n个子索引。
请帮帮我!
发布于 2015-07-17 06:27:00
如果你想得到最后一个你可以使用的:
body > div:nthchild(2) > ul > li:nth-last-child(1)https://stackoverflow.com/questions/31465520
复制相似问题