【发布时间】:2014-04-29 15:37:36
【问题描述】:
我有一个带有一些 id 的 span;在该范围内,既有段落 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
再次感谢您的帮助。
【问题讨论】:
-
据我所知,CSS 无法做到这一点……看看this。但是,使用 jQuery,您可以尝试
$("#myspan").contents(":not(p)").text();之类的东西。 (编辑: 好像只适用于某些版本的 jQuery。) -
感谢 seiseises,看来这里唯一的方法是使用你所说的在 selenium webdriver 中的 javascriptExecutor。但如果不是在 css 中,那么使用 xpath 怎么样?有没有办法使用 xpath 完成上述问题?再次感谢
-
抱歉,没用过 selenium 或 xpath,我只是看到了 jQuery 标签并试了一下。希望其他人可以帮助你!
-
没关系,尽管下面的 Amith 为我提供了我正在寻找的确切解决方案,但我将在 Selenium 选择器不够用的困难情况下使用 Javascript。例如,使用 JavascriptExecutor(jqueryScript) 在 Java 中运行 javascript/jquery 代码。所以这仍然很有帮助,谢谢。
标签: java html jquery-selectors selenium-webdriver css-selectors