使用Selenium在特殊元素上执行JavaScript querySelectorAll

时间:2018-01-07 11:44:03

标签: javascript c# selenium

根据this question我希望通过以下方式在我的JavaScript代码中找到一个元素:

     IJavaScriptExecutor js = (IJavaScriptExecutor)driver;
     string count = 
         js.ExecuteScript(
         "return document.querySelectorAll('ul.tag-list > li.tag-item').length")
         .ToString();

它工作正常。但是我需要在页面的特殊部分中运行我的JavaScript代码而不是整个文档。 无论如何呢?

1 个答案:

答案 0 :(得分:4)

是的,您也可以在元素上使用querySelectorAll。因此,选择元素(通过querySelectorgetElementById),然后在其上使用querySelectorAll

return document.querySelector('selector for the area of the page').querySelectorAll('ul.tag-list > li.tag-item').length;

您也可以使用一个复合选择器(在现有选择器的左侧添加更多选项),具体取决于父容器是否有多个匹配项等。