Путаница при ограничении области применения селена - PullRequest
1 голос
/ 03 июня 2019

Я пытаюсь ограничить область действия моего 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());    

2. В случае использования приведенного ниже кода на выходе будет 13:

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

Я ожидаю, что 1-й блок кода должен также выдавать вывод как 13, потому что я ограничиваю область действия веб-драйвера

1 Ответ

3 голосов
/ 03 июня 2019

Вы должны добавить . перед 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());  

Если вы не укажете ., findElement попытается выполнить xpath наВесь DOM скорее на текущем узле.Таким образом, мы можем ограничить работу xpath на текущем узле, добавив . в начале xpath.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...