这是我的Html:
<a class="info-button" data-voice-actions="["info", "more info"]" href="waze://?button=external_poi_info" id="info-button" onclick="window.location.href = this.href; return false;">
<span class="icon"></span>
<div class="btn-text">More Info</div>
</a>
我有一个 by.org.openqa.selenium.By
选择器:
By.cssSelector("#main > div > div.footer > div > a")
有时我想与它自己相关,一旦我想获取它的文本,如它的 <div class="btn-text">More Info</div>
子元素。
如何从我拥有的原始选择器中获取子元素的选择器?
(我一般问,因为这种情况对我来说重复了几次)
最佳答案
最终,这取决于您的应用程序的工作方式。下面假设您要查找的元素始终位于 a
元素的直接子元素中,并且它始终具有 .btn_text
类。您可以像操作任何字符串一样操作选择器:
String parent_sel = "#main > div > div.footer > div > a";
String child_sel = parent_sel + " > div.btn_text";
这两个字符串都可以传递给 By.cssSelector
。如果我的假设不正确,请根据需要进行调整。例如,如果 div
可以是 a
的后代,但不一定是它的子代,您可以连接 "div.btn_text"
以获得child_sel
。
I want to fetch its text
如果您正在寻找可以为您提供 text 的选择器,我会注意到没有您可以传递给 findElement
以获取 的选择器文本。此函数始终返回元素(或以复数形式使用时的元素列表)。您必须对获取的元素使用 getText()
。 (如果您想知道:XPath 通常可以选择文本,但当您通过 Selenium 使用它时则不能。)
关于java - 给定一个 bySelector 我怎样才能得到这个元素的 child 的选择器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28269472/