Google chrome 我可以在Firefox中点击一个按钮——为什么不在Chrome中呢?

Google chrome 我可以在Firefox中点击一个按钮——为什么不在Chrome中呢?,google-chrome,watir-webdriver,Google Chrome,Watir Webdriver,我在Chrome和Firefox上使用Watir WebDriver 使用FF,我可以单击以下按钮: @browser.button(:id => 'btnSubmit').when_present.click 使用Chrome,我得到以下信息: Selenium::WebDriver::Error::UnknownError: unknown error: Element is not clickable at point (730, 681). Other element would

我在Chrome和Firefox上使用Watir WebDriver

使用FF,我可以单击以下按钮:

@browser.button(:id => 'btnSubmit').when_present.click
使用Chrome,我得到以下信息:

Selenium::WebDriver::Error::UnknownError: unknown error: Element is not clickable at point (730, 681). Other element would receive the click: <div class="blockUI blockOverlay" style="z-index: 1000; border: none; margin: 0px; padding: 0px; width: 100%; height: 100%; top: 0px; left: 0px; background-color: rgb(0, 0, 0); opacity: 0.38143215011627357; cursor: default; position: fixed;"></div>
这在运行模式下失败,并出现相同的错误

如果我搜索整个页面,我找不到将接收单击的“其他元素”

<div class="blockUI.............

贾斯丁科:我都查过了

以下是开发商的评论:

这是一个模式的“请等待…”弹出窗口,在加载文档或执行某些耗时活动时会出现很短的时间。该代码由JQuery插件动态注入,并很快删除。这可能就是我们无法在文档源中找到它的原因

请记住,以下操作不起作用:

@browser.button(:id => 'btnSubmit').when_present(100).click
while !(@browser.button(:id => 'btnSubmit').visible?)
  sleep(1)
end
@browser.button(:id => 'btnSubmit').click
但以下工作:

sleep(1)
@browser.button(:id => 'btnSubmit').click
所以目标元素总是存在的

以下操作不起作用:

@browser.button(:id => 'btnSubmit').when_present(100).click
while !(@browser.button(:id => 'btnSubmit').visible?)
  sleep(1)
end
@browser.button(:id => 'btnSubmit').click
因此目标元素始终可见

解决方案是等待“其他元素”消失:

while (@browser.div(:class => 'blockUI blockOverlay').present?)
  sleep(1)
end
@browser.button(:id => 'btnSubmit').click
而不是做:

while (@browser.div(:class => 'blockUI blockOverlay').present?)
  sleep(1)
end
@browser.button(:id => 'btnSubmit').click
您应该能够做到:

@browser.div(:class => 'blockUI blockOverlay').wait_while_present
@browser.button(:id => 'btnSubmit').click

在查找覆盖div时,是否检查了实际的DOM(例如使用浏览器的开发者工具栏)或查看了页面源代码?