gpt4 book ai didi

python - scrollIntoView() 正在向下滚动

转载 作者:太空狗 更新时间:2023-10-30 02:58:36 24 4
gpt4 key购买 nike

我在 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/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com