java - 给定一个 bySelector 我怎样才能得到这个元素的 child 的选择器?

标签 java javascript jquery css selenium

这是我的Html:

<a class="info-button" data-voice-actions="[&quot;info&quot;, &quot;more info&quot;]" 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/

相关文章:

java - 如果创建 Java 线程的线程在运行时退出,该线程是否会被另一个线程采用?

jQuery .load() 函数的 Javascript 语法

javascript - 使用 Javascript 和不一致的数组值洗牌?

javascript - 如何在 javascript 中检查多个 URL 状态代码?

jquery - 无法使用 jQuery 正确设置 Accept HTTP header

javascript - jquery选择前一个元素与选择器匹配的每个元素

java - Android 中的 Handler 存在问题

java - 使用 Java 树模型

java - 页面更改时更改 fragment 内容,ViewPager

javascript - 在字符串数组上使用 JavaScript 的 Math.max 是否安全?