- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我在 selenium 中进行了测试(使用 Python 和 FirefoxWebdriver)。在测试网站中,我有记录表,我想单击该表中的元素,但我必须滚动到该元素,然后才能单击它。
要滚动,我正在使用这种方法:
def scroll_to_element(self, element):
try:
self.driver.execute_script("return arguments[0].scrollIntoView();", element)
except Exception as e:
print 'error scrolling down web element', e
但是这个方法会向下滚动很多。元素位于 cca 2 行上方,但仍然不可见。有没有其他方法可以正确滚动到元素?我对这些脚本完全没有经验。
这是表格:
<table id="idMainGriddata_columns" agname="data_columns" userid="1" entityidcolumnname="dc_id" editable="1" border="0" class="adodb_dbgrid" scrollx="0">
<colgroup>
<col width="25">
# ...
</colgroup>
<tbody>
<tr entityid="14" class="adodb_dbgrid_even_row">
<td class="centered" value="14">...</td>
# ...
</tr>
# ... 400x tr
</tbody>
</table>
下面是该方法的使用:
variable = driver.find_element_by_xpath("//table[@id='idMainGriddata_columns']/tbody/tr/td[contains(text(), '" + column + "')]")
st.scroll_to_element(self, variable)
actions = ActionChains(self.driver)
actions.move_to_element(variable)
actions.double_click(variable)
actions.perform()
最佳答案
解决方案一
如果你只需要点击你可以做的元素:
driver.find_element_by_xpath("//table[@id='idMainGriddata_columns']/tbody/tr/td[contains(text(), '" + column + "')]").click()
如果您为此实现了 Js,它应该滚动到其中。
解决方案 2(肮脏的方式)
如果您的列变量是整数:
column += 2
方案三
将 alignToTop 添加到您的 scrollIntoView:
self.driver.execute_script("return arguments[0].scrollIntoView(true);", element)
关于python - scrollIntoView() 正在向下滚动,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33563331/
我正在制作一个网站,并制作了将元素滚动到视图中的JavaScript代码,我按下按钮的次数越多,滚动到视图中的元素的ID应该越高。它在Edge和Firefox上运行正常,但在Chrome上,它只在第一
我正在制作一个网站,并制作了将元素滚动到视图中的JavaScript代码,我按下按钮的次数越多,滚动到视图中的元素的ID应该越高。它在Edge和Firefox上运行正常,但在Chrome上,它只在第一
这个方法看起来是为了测试,但实际上我需要在使用更多小部件重建 UI 后将一个小部件滚动到屏幕上。 这存在于 GWT 世界中。 有什么方法可以在 Flutter 中实现这一点? 最佳答案 您可以使用 s
我有一个输入字段,它位于 (blur) 上或 (change)触发一个函数,该函数应该将页面滚动到下一个元素 block 。由于我忽略的原因,它不起作用,尽管在 (click) 上使用时它工作正常与按
我有一个嵌套的子容器,当我尝试 scrollIntoView 时,它破坏了父容器。我不明白为什么它会这样。请帮我解决这个问题。 请查看下面或 jsfiddle 上的代码 function moveTo
我想建立一个索引字母。当我单击字母(例如 A、B、C)时。它应该滚动到所属的标题。我在这里使用了 scrollIntoView 。除了“block:start”,一切都很好。当我想滚动到开始的标题时,
我有两个列表框的 View : 列表框 1 元素:A、B、C。 列表框 2 元素:...、A、...、B、...、C、...(长列表)。 当用户在列表框 1 中选择一个元素时,我想在列表框 2 中也将
我使用的是 Javascript(没有 jQuery),并且我有一个弹出的子菜单元素,它有时会超出查看器的底部,所以我使用scrollIntoView让子菜单立即移动以包含所有内容行项目完全在视口(v
我的网站有以下代码: function clickMe() { var element = document.getElementById('about'); element.scrollIn
使用javascript,我们可以使用- document.getElementById('pluginsource_wrapper').scrollIntoView(); 我可以理解scrollIn
当屏幕到达引用点(在方法滚动内部)时,如何停止滚动到 View ?(当屏幕到达其引用点时,我向上滚动一点,代码自动返回到引用点) interface Props { section: numb
如何制作 scrollIntoView只滚动直接父级(例如 div 和 overflow-y: scroll; )而不是整个页面? 我有一个网络界面,我正在为一个内部的、非常具体的目的而制作。我页面上
var mediaIdForFocus = 'mediaIdForFocus; ?>'; if(mediaIdForFocus) $('#flagimg'+mediaIdForFocus).get(0
我有一个非常基本的 scrollIntoView 函数,每当我单击导航栏中的链接时它就会运行。我遇到的问题是,当页面加载时,它会快速捕捉到滚动位置,然后又回到顶部。我怎样才能让它不会在页面的开头对齐?
我遇到一个问题,即在移动设备上使用 select2 jQuery 插件会出现问题,即,当下拉菜单被激活并且它在页面的底部时,虚拟键盘会覆盖选择选项。 为了解决这个问题,我想在页面打开之前将 selec
scrollIntoView() 函数有问题。我有一棵树和两个按钮: 首先将树滚动到底部节点 第二个将树滚动到顶部节点 我不知道我应该怎么做,这个滚动操作总是将节点滚动到树的顶部。我的意思是这个 fi
我正在使用 vanilla JS 让按钮平滑地向下滚动到 div 元素(目标 id) 我的代码是这样的: this.myButton.addEventListener("click",load_sec
我在事件目标上使用 scrollIntoView() 以确保它在其具有 overflow: scroll 的父项中可见,这主要是出于可访问性原因。 我的问题是我还有与该元素关联的点击事件,当点击事件也
有什么办法可以预防 scrollIntoView() 影响我尝试过的滚动监听器 evt.data.stopPropagation(); 和 elementos.scrollIntoView().
当我们使用 scrollIntoView(true) 时,整个页面布局向上移动。根据我的要求,我需要使用 true 参数。我需要避免这个举动。我在 https://jsfiddle.net/7v4t3
我是一名优秀的程序员,十分优秀!