相关疑难解决方法(0)

XPath包含(text(),'some string')与具有多个Text子节点的节点一起使用时不起作用

我有一个小问题,Xpath包含dom4j ...

让我们说我的XML是

<Home>
    <Addr>
        <Street>ABC</Street>
        <Number>5</Number>
        <Comment>BLAH BLAH BLAH <br/><br/>ABC</Comment>
    </Addr>
</Home>
Run Code Online (Sandbox Code Playgroud)

假设我想在给定根元素的文本中找到所有具有ABC的节点...

所以我需要写的xpath就是

//*[contains(text(),'ABC')]

然而,这不是Dom4j返回的......这是dom4j问题还是我理解xpath如何工作.因为该查询仅返回Street元素而不返回Comment元素.

DOM使Comment元素成为具有四个标记2的复合元素

[Text = 'XYZ'][BR][BR][Text = 'ABC'] 
Run Code Online (Sandbox Code Playgroud)

我会假设查询应该仍然返回元素,因为它应该找到元素并运行包含但它不会......

以下查询返回元素,但它返回的远远多于元素,它还返回父元素...这对问题是不可取的...

//*[contains(text(),'ABC')]
Run Code Online (Sandbox Code Playgroud)

是否有任何人知道XPath查询会只返回元素<Street/><Comment/>

xpath dom4j

235
推荐指数
6
解决办法
47万
查看次数

如何在这里使用XPath contains()?

我正在尝试学习xpath.我查看了这里的其他contains()示例,但没有使用AND运算符.我不能让这个工作:

//ul[@class='featureList' and contains(li, 'Model')]
Run Code Online (Sandbox Code Playgroud)

上:

...
<ul class="featureList">

<li><b>Type:</b> Clip Fan</li><li><b>Feature:</b> Air Moved: 65 ft.
    Amps: 1.1
    Clip: Grips any surface up to 1.63"
    Plug: 3 prong grounded plug on heavy duty model
    Usage: Garage, Workshop, Dorm, Work-out room, Deck, Office & more.</li><li><b>Speed Setting:</b> 2 speeds</li><li><b>Color:</b> Black</li><li><b>Power Consumption:</b> 62 W</li><li><b>Height:</b> 14.5"</li><li><b>Width:</b> Grill Diameter: 9.5"</li><li><b>Length:</b> 11.5"</li>

<li><b>Model #: </b>CR1-0081-06</li>
<li><b>Item #: </b>N82E16896817007</li>
<li><b>Return Policy: </b></li>
</ul>
...
Run Code Online (Sandbox Code Playgroud)

xml xpath

137
推荐指数
3
解决办法
45万
查看次数

XPath:点和文本之间的区别()

我的问题是关于使用dot和text()in的具体细节XPath.例如,以下find_element行返回相同的元素:

driver.get('http://stackoverflow.com/')

driver.find_element_by_xpath('//a[text()="Ask Question"]')
driver.find_element_by_xpath('//a[.="Ask Question"]')
Run Code Online (Sandbox Code Playgroud)

那么区别是什么呢?使用.和有text()什么好处和缺点?

selenium xpath

51
推荐指数
2
解决办法
7万
查看次数

在XPath中测试text()节点与字符串值

我有一个节点如下:

<span class="portal-text-medium">Office Hours</span>
Run Code Online (Sandbox Code Playgroud)

对于我使用的XPath

//span[text()='Office Hours']
Run Code Online (Sandbox Code Playgroud)

这应该工作,但它永远不会.我可以使用*contains(text(),'Office Hours')]*但是找不到完全匹配,我必须验证没有"*".这不是它唯一不适合我的时间.我之前看到它有用,所以我不知道出了什么问题.任何的想法?

是的,我可以,并且确实使用,starts-with但它并不完全相同.

html xml xpath

8
推荐指数
1
解决办法
6044
查看次数

如何对特定文本使用XPath contains()?

假设我们有一个HTML表格,基本上是这样的:

2|1|28|9|
3|8|5|10|
18|9|8|0|
Run Code Online (Sandbox Code Playgroud)

我想选择仅包含8个单元格的单元格,即,第2行的第2个单元格和第3行的第3个单元格。

这是我尝试过的://table//td[contains(.,'8')]。它给了我所有包含8的单元格。因此,我也得到了不必要的值28和18。

我该如何解决?

编辑:这是一个示例表,如果您想尝试您的xpath。使用左侧的日历-https : //sfbay.craigslist.org/sfc/

html xml selenium xpath

5
推荐指数
2
解决办法
1万
查看次数

标签 统计

xpath ×5

xml ×3

html ×2

selenium ×2

dom4j ×1