我想在Amazon Lambda中运行BeautifulSoup和Selenium Webdriver,我的运行环境是python 3.6。 可以跑步吗? 如果是这样,如何。 我的意图是使用漂亮的汤4和硒从网页上删除数据(因为它必须删除由javascript动态生成的数据)。 ...
提示:本站收集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)
一旦评估了第一或第二,它就会继续。 没有理由等待一个,然后再等待另一个。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.