2024-04-18 12:32:54 发布
网友
我有一个li标签列表,在每个li标签中都有一些带有强标签和普通文本的文本 //*[@id=“main”]/li[1]/strong的Xpath 如何获取普通文本,如果我获取li标记的xpath,那么它将刮取整个文本,有没有方法获取单独的文本
<li> <strong>Heading</strong> : Sample paragraph to get the text from here. </li>
如果您使用的是JavaScript执行器并获取节点的lastChild。你知道吗
JavaScript
lastChild
print(driver.execute_script('return arguments[0].lastChild.textContent;', driver.find_element_by_xpath('//*[@id="main"]/li[1]')))
您可以获取<li>文本并从中删除<strong>文本
<li>
<strong>
element = driver.find_element_by_xpath('//*[@id="main"]/li[1]') all_text = element.text element = element.find_element_by_xpath('./strong') text = all_text.replace(element.text, '')
要刮取正常文本,需要为visibility_of_element_located()导入WebDriverWait,并且由于所需节点是text节点,因此可以使用execute_script()方法和以下Locator Strategy:
visibility_of_element_located()
execute_script()
xpath 1:
print(driver.execute_script('return arguments[0].lastChild.textContent;', WebDriverWait(driver, 20).until(EC.visibility_of_element_located((By.XPATH, "//li[./strong[text()='Heading']]")))))
xpath 2:
print(driver.execute_script('return arguments[0].lastChild.textContent;', WebDriverWait(driver, 20).until(EC.visibility_of_element_located((By.XPATH, "//li/strong[text()='Heading']/..")))))
如果您使用的是
JavaScript
执行器并获取节点的lastChild
。你知道吗您可以获取
<li>
文本并从中删除<strong>
文本要刮取正常文本,需要为
visibility_of_element_located()
导入WebDriverWait,并且由于所需节点是text节点,因此可以使用execute_script()
方法和以下Locator Strategy:xpath 1:
xpath 2:
相关问题 更多 >
编程相关推荐