Java 查找xpath标签@for标记';孩子 > >总计: > $10,280.55 >

Java 查找xpath标签@for标记';孩子 > >总计: > $10,280.55 >,java,selenium,xpath,Java,Selenium,Xpath,这是html,我正试图获得$amount。 我已经尝试了//label[@for=“grandTotal”]/child::node() 这只会突出显示整个文本。由于$amount没有属性,因此我无法找到它 PS:我可以通过以下内容访问节点:***[@id=“planForm”]/div[3]/h3/div/text()***,但这不起作用,因为Selenium只对元素节点起作用。文本$10280.55在文本节点内。因此,要打印文本,您必须对元素的可见性进行归纳(),您可以使用以下任一选项:

这是html,我正试图获得$amount。 我已经尝试了
//label[@for=“grandTotal”]/child::node()

这只会突出显示整个文本。由于$amount没有属性,因此我无法找到它

PS:我可以通过以下内容访问节点:
***[@id=“planForm”]/div[3]/h3/div/text()***
,但这不起作用,因为Selenium只对元素节点起作用。

文本$10280.55在文本节点内。因此,要打印文本,您必须对元素的可见性进行归纳(),您可以使用以下任一选项:

  • 使用
    XPATH
    和子节点:

  • 使用
    XPATH
    splitlines()

  • 注意:您必须添加以下导入:

    print(WebDriverWait(driver, 20).until(EC.visibility_of_element_located((By.XPATH, "//div[contains(@class, 'alpha participant-info-fields')][./label[@for='grandTotal']]"))).get_attribute("innerHTML").splitlines()[4])
    

这就像一个符咒。然而,对于java,我不得不做一些调整。String test=driver.findelelement(By.xpath(//div[contains(@class,'alpha participant info fields')][./label[@for='grandTotal']])).getAttribute(“innerHTML”).split()[3]@BornToBeAGamer-Oops,我假设您是使用Python的。
print(driver.execute_script('return arguments[0].lastChild.textContent;', WebDriverWait(driver, 20).until(EC.visibility_of_element_located((By.XPATH, "//div[contains(@class, 'alpha participant-info-fields')][./label[@for='grandTotal']]")))).strip())
print(WebDriverWait(driver, 20).until(EC.visibility_of_element_located((By.XPATH, "//div[contains(@class, 'alpha participant-info-fields')][./label[@for='grandTotal']]"))).get_attribute("innerHTML").splitlines()[4])
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.common.by import By
from selenium.webdriver.support import expected_conditions as EC