Как извлечь текст, присутствующий в DOM, используя Selenium и Java - PullRequest
0 голосов
/ 25 сентября 2019

Я пытаюсь получить текст в структуре Dom, но не могу его получить, я использовал getText(); и getAttribute();, но не получаю, я использовал значение, внутренний HTML, внешний HTML, текст и т. Д.это должно быть упомянуто в getAttribute (), но неспособность получить этот текст может помочь мне получить его.

<label class="">
    <input type="checkbox" value="ml+4gvbuEG8Y3bBbAEbQvA==" name="selectedemployees" class="checkall">Alberta              Weekly1             
</label>

Я хочу получить текст "Alberta Weekly1" в моей консоли

enter image description here

Консольный выход

Ответы [ 3 ]

0 голосов
/ 25 сентября 2019

Чтобы получить текст Alberta Weekly1 Вам нужно вызвать WebDriverWait И visibilityOfElementLocated() И использовать опцию XPATH ниже.

WebDriverWait wait = new WebDriverWait(driver, 30);
String textval=wait.until(ExpectedConditions.visibilityOfElementLocated(By.xpath("//label[./input[@name='selectedemployees']]"))).getText(); 
System.out.println(textval);
0 голосов
/ 25 сентября 2019

Вы также можете попробовать ниже приведенный xpath.

//label//child::input[@class='checkall' and @name='selectedemployees']
0 голосов
/ 25 сентября 2019

Чтобы извлечь текст Alberta Weekly1 , вам нужно вызвать WebDriverWait для visibilityOfElementLocated() и в качестве желаемого узла можно указать текстовый узел , который вы можете использовать executeScript() метод вместе с любой из следующих Стратегий локатора :

  • xpath 1 :

    System.out.println(((JavascriptExecutor)driver).executeScript("return arguments[0].lastChild.textContent;", new WebDriverWait(driver, 20).until(ExpectedConditions.visibilityOfElementLocated(By.xpath("//label[./input[@class='checkall' and @name='selectedemployees']]")))).toString());
    
  • xpath 2 :

    System.out.println(((JavascriptExecutor)driver).executeScript("return arguments[0].lastChild.textContent;", new WebDriverWait(driver, 20).until(ExpectedConditions.visibilityOfElementLocated(By.xpath("//label/input[@class='checkall' and @name='selectedemployees']/..")))).toString());
    
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...