我是GEB的新手,正在使用jQuery。
我正在尝试选择或查找某个元素的子级是否具有特定文本的更深n级。
我正在尝试使用contains选择器,但没有按预期运行。
简单的例子:
...
<div class="widget-header-title">My Tasks</div>
...
我正在尝试执行此选择器
$('div:contains("My Tasks")')
但我遇到一个例外:
Method threw 'org.openqa.selenium.InvalidSelectorException' exception.
我真正需要做的是检查另一个子元素是否包含文本
<div id="taskLegend">
<div>
....
<text ....>Call</text>
....
</div>
</div>
我尝试了这个选择器,并且在上面遇到了同样的异常
$("#taskLegend").find("text:contains('Call')")
但使用
$("#taskLegend").find("text")
它返回taskLegend内部的所有元素“文本”
看起来像是无法使用的容器。
有人可以发现我在做什么错吗?
非常感谢您
答案 0 :(得分:2)
不是第一个答案是错误的,但是另一种方法是通过将Text(
"Hello",
style: TextStyle(background: Paint()..color = Colors.red),
),
对象传递给您的Jquery闭包https://seleniumhq.github.io/selenium/docs/api/java/org/openqa/selenium/By.html
所以对我个人而言,我可能会使用xpath(尽管请注意,xpath从技术上讲是最慢的)
所以它看起来像这样:
By
这将返回所有包含文本“我的任务”的div
答案 1 :(得分:1)
引号用于元素及其标签(例如“ h1.class”)
如果您希望使用text进行搜索:包含必须采用以下格式:
$("#taskLegend").find("text", text:contains("Call"))
在您的情况下,“文字”一词有2个含义;一个文本元素本身和一个元素的文本