找到一个复杂的范围:不是(p)selenium webdriver的选择器

时间:2014-03-22 02:50:39

标签: java html jquery-selectors selenium-webdriver css-selectors

我有一个带有一些id的跨度;并且在该范围内,有一个段落p标签和一些没有标签的文本,如下所示。我使用selenium webdriver定位下面的街道地址。

 <span id="myspan">
    <p>fullname</p>
    street address - has no tags attributes.
 </span>

我只需要在没有全名的情况下定位街道地址。

我在想这样的事情:

span#myspan.not(p) // select all content of the span element, then ignore the p 
tag within it, so that only the street address is left. 

//

driver.findelement(By.cssSelector("span#myspan.not(p)")) // should select street 
address

再次感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

嗯,据我所知,没有选择器或xpath可以直接执行此操作。但是,如果您使用的是Java,则以下内容应该为您提供所需的文本:

String spanText = driver.findElement(By.cssSelector("span#myspan")).getText();
String pText = driver.findElement(By.cssSelector("span#myspan > p")).getText();
String requiredText = spanText.replace(pText,"");

第一个语句应该是fullname street address,第二个语句会得到fullname,第三个语句会返回street address

如果要删除前导和尾随空格,请执行以下操作:

System.out.println(requiredText.trim());