如何使用Selenium和Java提取DOM中存在的文本

问题描述 投票:0回答:3

我正在尝试使文本显示在Dom结构中,但我无法理解,我使用了getText();getAttribute();,但是没有使用值,内部html,外部html,文本等必须在getAttribute()中提及;但是无法获取该文本可以帮助我从中获取文本。

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

我想在控制台中获得“艾伯塔周刊1”文本

enter image description here

Console output

javascript java selenium xpath webdriverwait
3个回答
0
投票

要获取文本Alberta Weekly1,您需要诱导WebDriverWaitvisibilityOfElementLocated()并使用下面的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
投票

您也可以在给定的xpath下尝试。

//label//child::input[@class='checkall' and @name='selectedemployees']

0
投票

要提取文本Alberta Weekly1,您需要为visibilityOfElementLocated()引入WebDriverWait,并且由于所需的节点是text node,因此可以将executeScript()方法与以下任一方法一起使用以下executeScript()

  • xpath 1

    Locator Strategies
  • 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());
    
© www.soinside.com 2019 - 2024. All rights reserved.