Testing GEB查找第一个可见元素
我在页面上有一些隐藏的按钮。当我点击文本输入时,其中一个按钮显示在页面上。之前:Testing GEB查找第一个可见元素,testing,groovy,automated-tests,geb,Testing,Groovy,Automated Tests,Geb,我在页面上有一些隐藏的按钮。当我点击文本输入时,其中一个按钮显示在页面上。之前: <div field='login'> <input type="text"> <button class="submit" style="display: none">Save</button> </div> <div field='name'> <input type="text"> <
<div field='login'>
<input type="text">
<button class="submit" style="display: none">Save</button>
</div>
<div field='name'>
<input type="text">
<button class="submit" style="display: none">Save</button>
</div>
但我还有一个错误:
isorg.openqa.selenium.ElementNotVisibleException: Element is not currently visible and so may not be interacted with
如果我写:
static content = {
submitButton { $("button.submit", 1) }
}
它可以工作,但我需要使用页面上第一个可见的按钮。有什么问题吗?不幸的是,没有css选择器来查找可见元素,但您可以使用
导航器及其来查找可见的按钮:
static content = {
submitButton { $("button.submit").findAll { it.displayed } }
}
我知道这很旧,但我想补充一点,这将为您提供一个包含所有提交按钮的导航器集,而不仅仅是第一个按钮(这是问题要求的)。如果您只想要第一次出现,可以说submitButton.first(),或者可以使用闭包find()
而不是findAll()
static content = {
submitButton { $("button.submit", 1) }
}
static content = {
submitButton { $("button.submit").findAll { it.displayed } }
}