Javascript 从textnode selenium读取值

Javascript 从textnode selenium读取值,javascript,selenium,xpath,browser-automation,Javascript,Selenium,Xpath,Browser Automation,我有一个web应用程序。我正在使用selenium进行测试。我有一个节点 <span>Profile Run <span class="current">23</span> of 29</span> 但是getAttribute(“innerText”),getAttribute(“innerHTML”)甚至getText()都不起作用 错误: xpath表达式的结果 //span[contains(text(),'Profile Run')]/

我有一个web应用程序。我正在使用selenium进行测试。我有一个节点

<span>Profile Run <span class="current">23</span> of 29</span>
但是
getAttribute(“innerText”)
getAttribute(“innerHTML”)
甚至
getText()
都不起作用

错误:

xpath表达式的结果 //span[contains(text(),'Profile Run')]/text()[last()]是:[对象文本]。它应该是一个元素

这里将要发生的是,它将返回您的跨度的所有值。它会将整个跨度转换成字符串,并使用字符串函数“split”从代码中提取您想要的值

以下是拆分功能文档:

您是否尝试先获取元素
//span[contains(text(),'Profile Run')]
并且从那里很容易获取文本内容?@dsfq它将整个span作为web元素返回。我只想要“29个”我知道,这就是我要说的:得到整个跨度,然后得到最后一个孩子。简单。@dsfq u的意思是类似于这个driver.findElement(By.xpath(hmap(//span[contains(text(),'Profile Run'))))))的东西。getAttribute(“innerHTML”类似于:
driver.findElement(By.xpath(hmap(//span[contains(text(),'Profile Run')])).lastChild
虽然此代码可以回答问题,但提供有关此代码为什么和/或如何回答问题的其他上下文可以提高其长期价值。
//span[contains(text(),'Profile Run')]/text()[last()]
WebElement splitEnd =  driver.findElement(By.xpath(("//span[contains(text(),'Profile Run')]")));
       splitEnd.toString().split("ADD VALUE THAT YOU WANT TO RETURN");