我遇到按钮问题。 每次我尝试点击,我都会收到此消息
"元素不可点击(388.3833312988281,8.333328247070312)。其他元素将收到点击。 "
我正在使用Firefox,Capybara + ruby和selenium(不是webdriver)
这是按钮的代码
我想点击添加按钮
我该怎么办?
<div class="box08-2 collapseBoxContent" style="margin-top: 0px">
<div id="wt32_Huge_WebbBaseTheme_wt11_block_wtMainContent_wtMainContent_wtItemsWB_Huge_WebbBaseTheme_wt31_block_wt8_wtCollapsibleContentPH" style="margin-top: 0px">
<div id="wt32_Huge_WebbBaseTheme_wt11_block_wtMainContent_wtMainContent_wtItemsWB_Huge_WebbBaseTheme_wt31_block_wt8_wtCollapsibleContentPH_wtContent" style="margin-top: 0px">
<div id="wt32_Huge_WebbBaseTheme_wt11_block_wtMainContent_wtMainContent_wtItemsWB_Huge_WebbBaseTheme_wt31_block_wt8_wtCollapsibleContentPH_wtContent_wtCtnBody" data-webbtests="CompraWeb.Request_Edit.ItemsWB.divCtnBody">
<div class="btn04 btn04v5 box20v10">
<div id="wt32_Huge_WebbBaseTheme_wt11_block_wtMainContent_wtMainContent_wtItemsWB_Huge_WebbBaseTheme_wt31_block_wt8_wtCollapsibleContentPH_wtContent_RichWidgets_wt42_block_wtDropDownButtonRoot" class="Menu_DropDownButton OSInline">
<div id="wt32_Huge_WebbBaseTheme_wt11_block_wtMainContent_wtMainContent_wtItemsWB_Huge_WebbBaseTheme_wt31_block_wt8_wtCollapsibleContentPH_wtContent_RichWidgets_wt42_block_wtDropDownButtonElement" class="Menu_TopMenu">
<div id="wt32_Huge_WebbBaseTheme_wt11_block_wtMainContent_wtMainContent_wtItemsWB_Huge_WebbBaseTheme_wt31_block_wt8_wtCollapsibleContentPH_wtContent_RichWidgets_wt42_block_wtMenuItem">
<span data-webbtests="CompraWeb.Request_Edit.ResumeRequestItemsWB.lblActions">Add</span>
答案 0 :(得分:0)
当DOM未准备好或正在更改时,通常会出现此问题。
所以你应该等到页面稳定,所有异步脚本完成,图像加载等等。广告也可能是一个问题,因为他们可能会更改页面。
请看这里等待(顺便说一句,我建议在Selenium上使用watir webdriver): http://watir.github.io/docs/waiting/
以下是降低此问题可能性的步骤:
wait_
助手button(text: 'Add')
的内容答案 1 :(得分:0)
我不确定我是否理解你的&#34;不是webdriver&#34;评论,因为与Capybara一起使用selenium的唯一方法是通过selenium-webdriver gem。
根据您获得的错误的y位置判断(8.333328247070312),您尝试点击的按钮可能位于固定标头后面。这可能是因为您没有点击使按钮从标题后面滑出所需的元素,或者因为页面长于屏幕而selenium-webdriver滚动页面直到元素位于顶部(结束时)在你的标题后面)。如果您在页面上没有固定页脚,则可以通过elementScrollBehavior
属性更改selenium-webdriver,将元素滚动到底部而不是顶部 - 请参阅Selenium WebDriver : How do I set capabilities elementScrollBehavior to 1 for a FireFox configuration in rails?
。如果这对您不起作用,那么您可以使用execute_script
和JS来滚动页面,以便元素从标题下移出