很抱歉,如果之前讨论过这个问题。我试过搜索但没找到完全匹配。我的问题是我的HTML代码很低,
<div class="column1">
<div>
<div class="name">
Dynamic Name
<span class="id" title="ID">Dynamic ID</span>
</div>
</div>
</div>
我正在寻找XPath来获取文本动态名称。 这是我尝试过的不起作用
1. //div/div[@class='name'] which is finding text Dynamic Name Dynamic ID
2. //div/span[@class='id']/preceding-sibling::text()
自动态名称&amp;动态ID,都是动态值,我不能使用split&amp;使用名称,因为我们不知道在哪里拆分它。 在此先感谢您的时间和帮助
答案 0 :(得分:1)
这个XPath,
normalize-space(//div[@class="name"]/text())
将根据要求为您的HTML返回"Dynamic Name"
。
谢谢,但它有一些语法错误,因为我尝试使用Firepath并给出一些错误。不确定是哪一个。
狂野猜测:看看是否
//div[@class="name"]/text()
避免语法错误(这会限制您的工具,因为normalize-space()
是一个正确的XPath 1.0函数)并选择您的目标文本(尽管有无关的空格)。
答案 1 :(得分:0)
由于您声明XPath //div/div[@class='name']
正在运行但返回的信息太多,我们可以抓取该元素,抓取innerHTML
,然后拆分第一个<
,第一个String
和trim()
以获取答案。
driver.findElement(By.xpath("//div/div[@class='name']")).getAttribute("innerHTML").split("<")[0].trim();
答案 2 :(得分:-1)