如何使用xpath在<br/>标签之间提取文本

时间:2014-04-24 12:29:39

标签: selenium xpath webdriver

以下是我的应用程序中按钮的代码。

<span class="ms-cui-ctl-largelabel" unselectable="on">
New
<br>
Map
</span>
</a>
</span>

我想点击该按钮并使用Selenium Webdriver。我尝试了多种组合,但它对我不起作用。以下是我尝试的不同xpath

1. By.xpath("//span[contains(@class, 'ms-cui-ctl-largelabel') and text() = 'New/nMap']"));
2. By.xpath("//span[contains(@class, 'ms-cui-ctl-largelabel') and text() = 'New/r/nMap']")); 
3. By.xpath("//span[contains(@class, 'ms-cui-ctl-largelabel') and text() = 'New Map']"));

有人可以帮忙吗?

由于

4 个答案:

答案 0 :(得分:2)

使用normalize-space()

的替代解决方案
//span[@class="ms-cui-ctl-largelabel" and normalize-space()="New Map"]

答案 1 :(得分:0)

您可以使用以下xpath通过<br>和类:

按文本查找范围
//span[contains(.,'New') and contains(.,'Map') and @class='ms-cui-ctl-largelabel']

答案 2 :(得分:0)

您可以使用以下xpath中的任何一个:

  1. //span[@class='ms-cui-ctl-largelabel'][contains(., 'New')][contains(., 'Map')]

  2. //span[contains(., 'New')][contains(., 'Map')]

  3. //span[@class='ms-cui-ctl-largelabel']

  4. //span[@class='ms-cui-ctl-largelabel'][contains(., 'New')]

  5. //span[@class='ms-cui-ctl-largelabel'][contains(., 'Map')]

  6.   

    所有都经过xpath测试。

答案 3 :(得分:0)

尝试使用此行:

//span[translate(string(),' ','')=translate('New Map',' ','')]