首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >页面底部的触摸元素获得错误:元素当前不可见,因此可能无法与

页面底部的触摸元素获得错误:元素当前不可见,因此可能无法与
EN

Stack Overflow用户
提问于 2013-08-01 04:02:02
回答 1查看 398关注 0票数 1

我有一个很长的html页面,里面有很多可编辑的元素。单击元素时,它的编辑对话框将弹出。奇怪的是,如果元素位于页面顶部,则可以成功地访问其编辑对话框,而无法访问底部和一些中间位置元素的编辑对话框。输出的错误是:“元素当前不可见,因此不能与之交互”。对失败的编辑对话框的一些检查是:

p dialog.exist? ==>got真 p dialog.visible? ==>got假 dialog.attribute_value('style') ==>got“

(firebug显示样式属性值为“display:block”;而top元素的“成功检查”对话框中的值完全相同,可见也是'false‘!毛茸茸的!!(为什么可以访问?)

然后我试着:

browser.execute_script("document.getElementById('dialogDiv').style.display='block'; ")

若要将对话框样式属性值设置为“display:block;”,希望它变得可见,但失败了。

在这个长页面上,当元素的编辑对话框弹出时,就没有滚动条了。因此,底部元素对话框的一部分有可能被掩盖。这是原因吗?所以我试着:

bottom_element.wd.location_once_scrolled_into_view

若要在单击之前滚动到底部元素,则当对话框弹出时,对话框的所有部分都会显示,但仍然无法访问。

最后一次尝试:

在编辑对话框打开后,使用javacript滚动。

browser.execute_script("window.scrollBy(0,-100)")

该对话框位于浏览器窗口的中间,没有被任何东西掩盖,但仍然是

元素当前不可见,因此不能与

当我移动到一个类似的长页面,但有滚动条后,对话框弹出,底部元素的对话框可以访问成功。有人知道这件事吗?请与我分享,谢谢提前。

html是:

代码语言:javascript
运行
复制
<div id="dialogDiv" style="display: block;">
    <div class="sage_dialog ui-draggable" style="top: 322px; display: block; margin-bottom: 1000px; left: 542px;">

对话框的位置和大小如下:

代码语言:javascript
运行
复制
 <struct Selenium::WebDriver::Point x=0, y=1576> 
 <struct Selenium::WebDriver::Dimension width=800, height=0>

我从How to force Selenium WebDriver to click on element which is not currently visible?那里得到了线索

height=0是个问题,我怎么能改变它呢?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-08-02 03:05:35

在咨询html设计人员之后,我得到了问题的关键,主体html是:

代码语言:javascript
运行
复制
<body class="float_guide_parent" style="width: 800px; overflow: hidden; cursor: auto;">

溢出的值是“隐藏的”,它会阻止滚动条的显示,因此我修改了它:

代码语言:javascript
运行
复制
browser.execute_script("$('.float_guide_parent').css('overflow',''); ") 

问题解决了。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17985080

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档