如何解决如何使用Selenium从父节点中提取文本不包括子节点中的文本
我正在尝试获取div的文本,而不获取子跨度的文本,这是我的html:
<div class="Travel">
<!--ko text: marketName-->Résultat<!--/ko-->
<span class="label">Cities</span>
</div>
我想获得Résultat
,而不是Résultat Cities
这是我尝试过的:
//div[@class='Travel']//text()
解决方法
对于Python,请使用此-
直接Div文本-
driver.find_element_by_xpath('//div[@class="Travel"]').text()
通过span标签分割文本-
driver.find_element_by_xpath('//span[text()="Cities"])/parent::div').text()
对于Java,请使用此-
直接Div文本-
driver.findElements(By.xpath('//div[@class="Travel"]')).getText();
通过span标签分割文本-
driver.findElements(By.xpath('//span[text()="Cities"])/parent::div')).getText();
文本Résultat
在文本节点内。因此,请提取文本,您可以使用以下Locator Strategies之一:
-
System.out.println(((JavascriptExecutor)driver).executeScript('return arguments[0].childNodes[2].textContent;',driver.findElement(By.xpath("//div[@class='Travel']"))).toString());
-
使用python,css-selectors和
get_attribute("innerHTML")
:print(driver.find_element_by_css_selector("div.Travel").get_attribute("innerHTML").splitlines()[2])
这应该有效
//div[@class='Travel']/text()
仅来自
的文本版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。