我试图使用命令if (@browser.text_field(:id => textbox).exists?)
来验证页面上是否存在元素,但该命令甚至在页面加载之前执行,并且它始终转到else语句。我该如何处理?Watir命令在页面加载之前执行
0
A
回答
0
在页面加载完成之前继续执行Watir通常意味着该页面正在异步加载某些内容。在这种情况下,当页面实际完成加载时,您需要告诉Watir。你如何做到这一点取决于页面,但总的来说,有2个选项。
当异步加载内容时,许多应用程序将显示微调器或进度条。当这个元素消失时,页面可以被认为是“加载”的。因此,如果你有这些类型的页面上的元素之一,你可以等待它继续之前消失:
@browser.div(:id => 'spinners_id').wait_while_present
if @browser.text_field(:id => textbox).exists?
# Do stuff
else
# Do other stuff
end
另外,还有也许你知道的页面上的元素被加载为止。在这种情况下,你可以等到出现该元素:
@browser.div(:id => 'some_last_element').wait_until_present
if @browser.text_field(:id => textbox).exists?
# Do stuff
else
# Do other stuff
end
0
@ browser.text_field(:ID,文本框).when_present.set“欢迎”
这将帮助你减少不必要的等待检查代码并使代码更具可读性。
相关问题
- 1. 在页面加载之前执行Javascript
- 2. 如何让Selenium在执行click()命令之前等待页面完全加载
- 3. jquery在加载页面之前执行菜单加载
- 4. 在页面加载之前执行Crossrider代码
- 5. 在继续执行JavaScript之前等待页面加载
- 6. 如何在页面加载之前执行jquery脚本?
- 7. Vaadin-JS在加载页面之前执行
- 8. 如何在页面加载之前执行Javascript函数?
- 9. 在页面加载之前在ajax请求的页面上执行脚本
- 10. 如何在执行命令之前回显命令行?
- 11. 加载ReactiveUI执行命令
- 12. WPF页面NavigationService - 如何在执行页面事件之前完全加载UI
- 13. 如何在加载父页面之前加载子页面?
- 14. 如何在页面加载之前运行加载动画
- 15. 如何在Cake 3之前执行Group by之前的命令?
- 16. 在页面加载之前删除cookie
- 17. bxslider在页面加载之前堆叠
- 18. document.body.appendChild在页面加载之前
- 19. 在加载页面之前编译scss
- 20. onPageFinished在页面加载之前触发
- 21. 在执行命令之前可以向ssh-agent添加密钥
- 22. 在jQueryMobile上加载并执行audio.js页面加载AJAX页面
- 23. 在执行php之前加载JQUery Mobile
- 24. 在加载UI之前执行代码
- 25. 执行页面时SQL命令失败
- 26. 执行之前的Ajax验证页面
- 27. 在InSpec测试之前或之后执行命令
- 28. 停止加载页面watir-webdriver
- 29. Watir不会等待页面加载
- 30. 在页面加载之前执行代码的最佳方式是什么