Igo*_*rol 12
我不是Ruby专家,可以做一些语法错误,但你可以得到一般的想法:
if @driver.find_elements(:link, "Save").size() > 0
Run Code Online (Sandbox Code Playgroud)
这段代码不会抛出 NoSuchElementException
但是如果你有implicitlyWait大于零并且页面上没有元素,这个方法将"挂起"一段时间.第二个问题 - 如果元素存在于页面上但未显示,则会得到true.
要解决此问题,请尝试创建方法:
def is_element_present(how, what)
@driver.manage.timeouts.implicit_wait = 0
result = @driver.find_elements(how, what).size() > 0
if result
result = @driver.find_element(how, what).displayed?
end
@driver.manage.timeouts.implicit_wait = 30
return result
end
Run Code Online (Sandbox Code Playgroud)
@driver.find_element抛出一个叫做的异常NoSuchElementError.
因此,您可以编写自己的方法,该方法使用try catch块,并在没有异常时返回true,在有异常时返回false.
| 归档时间: |
|
| 查看次数: |
13710 次 |
| 最近记录: |