使用GEB,我如何在短信框中输入文字并单击“确定”

时间:2018-07-25 21:31:50

标签: webdriver geb

我有一个带有“确定”或“取消”选项的基本警报框

enter image description here

使用硒,易于使用alert.getText()alert.accept。如何使用GEB处理相同的情况?

看起来我可以使用withConfirm验证文本,但是我不知道如何单击“确定”按钮。

assert withConfirm(true) { $("input", name: "showConfirm").click() } == "Do you like Geb?"

2 个答案:

答案 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块。