我有一个带有“确定”或“取消”选项的基本警报框
使用硒,易于使用alert.getText()
和alert.accept
。如何使用GEB处理相同的情况?
看起来我可以使用withConfirm验证文本,但是我不知道如何单击“确定”按钮。
assert withConfirm(true) { $("input", name: "showConfirm").click() } == "Do you like Geb?"
答案 0 :(得分:0)
您显示给我们的代码应该可以使用,您直接从Geb手册中复制了该代码。
在html元素上单击操作后,该断言将检查弹出窗口中的文本。在下面的情况(您粘贴的代码)中,当单击名称为“ showConfirm”的html元素时,断言显示了一个弹出窗口,并显示文本“您喜欢Geb吗?”。
assert withConfirm(true) { $("input", name: "showConfirm").click() } == "Do you like Geb?"
因此,您需要更改代码以与任何元素动作导致您的弹出窗口相关:
assert withConfirm(true) { $("input", name: "thisIsTheNameOfMyElementThatWillCauseAPopUpToAppear").click() } == "Are you sure?"
请注意,处理警报和确认对话框方法的Geb AlertAndConfirmSupport类实际上应阻止显示弹出窗口。
答案 1 :(得分:0)
答案是...(真)部分。
withConfirm(
是 ) { performSomeAction} == "Some expected text"
大致等同于-
performSomeAction
getAlert().text() == "Some expected text"
getAlert().accept()
在硬币的另一面,withConfirm(
假 ) { performSomeAction} == "Some expected text"
大致等于-
performSomeAction
getAlert().text() == "Some expected text"
getAlert().dismiss()
我在这里说的大致上是等效的,因为正如@Rushby Geb所述,它通过拦截警报而不显示警报来处理withConfirm块。