限制 selenium webdriver 范围时的混乱

Sac*_*Seh 1 selenium selenium-webdriver

我正在尝试限制 WebDriver 的范围,但没有得到所需的结果。有人可以帮我看看这里发生了什么吗?

1.如果我使用以下代码,输出为 21:

WebElement table = driver.findElement(By.xpath("//div[@id='innings_1']"));      

System.out.println(table.findElements(By.xpath("//div[@class='cb-col cb-col-100 cb-scrd-itms']")).size());    
Run Code Online (Sandbox Code Playgroud)

2.如果使用下面的代码输出是13:

System.out.println(driver.findElements(By.xpath("//div[@id='innings_1'] //div[@class='cb-col cb-col-100 cb-scrd-itms']")).size());    
Run Code Online (Sandbox Code Playgroud)

我期望第一个代码块也应该输出 13,因为我限制了 webdriver 的范围

sup*_*uri 5

您必须.在 xpath 之前添加,同时限制分数,如下所示。

WebElement table = driver.findElement(By.xpath("//div[@id='innings_1']"));      

System.out.println(table.findElements(By.xpath(".//div[@class='cb-col cb-col-100 cb-scrd-itms']")).size());  
Run Code Online (Sandbox Code Playgroud)

如果您不指定,.则 findElement 将尝试在整个 DOM 而不是当前节点上执行 xpath。因此,我们可以通过在 xpath 的开头添加来限制 xpath 在当前节点上工作.