繁体   English   中英

在Selenium WebDriver中触发/运行早期交互

Trigger/run earlier interaction in Selenium WebDriver

提示:本站收集StackOverFlow近2千万问答,支持中英文搜索,鼠标放在语句上弹窗显示对应的参考中文或英文, 本站还提供   中文繁体   英文版本   中英对照 版本,有任何建议请联系yoyou2525@163.com。

我想实现以下过程。 这些脚本是用Katalon编写的,但这并不重要。 硒方法就足够了。

我在对话框窗口中测试两个元素的外观。 如果出现文本消息,则第二个元素将不会出现,并且对话框窗口将关闭。 如果未显示第一个元素(消息),则单击在一定时间后显示的按钮。

我想继续,避免使用等待元素可见/不可见的方法。 我不知道该怎么做,但是首先触发任何动作,它将通过它。

问题是测试等待消息一定时间,如果消息未显示(例如30秒),则单击按钮。 我要避免等到可见为止,而不要等到立即单击按钮。 因此,目标是跟踪两个并行动作(不是硒动作),并且首先触发哪个动作。 有什么办法吗? 也许使用任务?

这是代码:

TestObject dialogWinEl = findTestObject("Object Repository/FinacDocAndPayments/dialogWindow/div_dialogWin")
WebUI.waitForElementVisible(dialogWinEl, GlobalVariable.TIMEOUT_ELEMENT, FailureHandling.OPTIONAL)

TestObject statusMsgFilesDownloadEl = findTestObject("Object Repository/InvoiceDetailPage/div_dialogWin/span_noDocFoundStatus")
boolean noDownloadFiles = WebUI.waitForElementVisible(statusMsgFilesDownloadEl, GlobalVariable.DOWNLOAD_BTN, FailureHandling.OPTIONAL)

        if(noDownloadFiles){
            KeywordUtil.markPassed("No files found to download. Closing dialog")
        }
        else{
            KeywordUtil.markPassed("Files found. Click on Download files")
            TestObject btnEl = findTestObject('Object Repository/InvoicesAndPayments_Global/btn_generic', [('btn_text'):btnName])
            WebUI.waitForElementClickable(btnEl, GlobalVariable.TIMEOUT_ELEMENT)
            WebUI.click(btnEl)
            KeywordUtil.markPassed("File downloaded. Closing dialog window")
        }

TestObject xBtn = findTestObject('Object Repository/InvoicesAndPayments_Global/confDialog/div_closeBtn')
WebUI.waitForElementClickable(xBtn, GlobalVariable.TIMEOUT_ELEMENT)
WebUI.click(xBtn)
KeywordUtil.markPassed("Dialog window has been closed")

基本上,变量noDownloadFiles等于特定元素的状态(可见或不可见),并且它等待var GlobalVariable.DOWNLOAD_BTN = 20sec中的时间。 这里的问题是,如果此变量为false,则意味着它等待了特定的时间,然后在else分支中继续。 关键是,如果按钮较早出现,则不必等待statusMsgFilesDownloadEl是否可见。 我只是想使用这个:

WebUI.waitForElementVisible(statusMsgFilesDownloadEl, GlobalVariable.DOWNLOAD_BTN, FailureHandling.OPTIONAL) 

WebUI.waitForElementClickable(btnEl, GlobalVariable.TIMEOUT_ELEMENT) 

一旦评估了第一或第二,它就会继续。 没有理由等待一个,然后再等待另一个。

问题暂未有回复.您可以查看右边的相关问题.
3 我们在 selenium webdriver 中有交互模式吗?

我是 Selenium 的新手。我想知道我们是否有任何交互模式来自动化 Selenium webdriver。因为我想在自动化时测试每一行是否正确。我之前有过自动化 Watir,我使用过“irb”进行交互。请帮助我,我们在 Selenium webdriver 中是否有任何类似的模式。 ...

4 如何使用 Python 在 selenium webdriver 中触发 keyupevent?

我正在使用的网站有一个输入框,当输入某些内容时会显示一个列表。 但是当使用诸如 pyautogui 和键盘之类的键盘库时,在此输入框中“键入”的任何内容都不会触发 keyupevent。 详细说明一下,似乎每当使用库输入不会导致 keyup 事件的内容时,我都需要发生这种情况,因为我需要列表之后显 ...

5 确定弹出/新窗口的类型,以便我可以在Selenium Webdriver中与之交互

这可能是一个菜鸟问题,但我不知道如何确定要与之交互的弹出窗口的类型,因此我可以掌握足够的信息来使用Selenium Webdriver自动执行该操作。 我以为这只是一个弹出窗口,但是当使用(似乎是)弹出窗口的标准处理方式时,Selenium JUnit测试会冻结单击按钮的实例。 此 ...

6 如何在selenium webdriver进程中避免用户交互?

我使用selenium创建了自动化程序,其中使用了chrome驱动程序。 我必须让浏览器保持最大化模式,以便在完成流程后5秒向用户显示结果。 但有时用户会更快地阅读结果并手动关闭chrome。 这使得在浏览器上失去对程序的控制而且它无法调用driver.quit();. 因为这对于退出驾 ...

7 查看早期Android版本中的后期运行问题

单击菜单项时,我打开PopupWindow 。 现在,我在不同的设备上测试了我的应用,并意识到,它在Android 2.3.3、4.0.3、4.0.4中无法正常运行(在4.2.2中运行良好) 我想知道,因为它不会引发任何错误。 如果我单击设备上的菜单按钮,然后单击应打开弹出窗口的项目 ...

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2022 STACKOOM.COM