我有一个div,其中有一个ul里面有16个li标签。这个div非常小,意味着只有4个li标签可见,你需要滚动其余部分。
每个li标签都有一个包含特定文本的链接。
我的要求是,根据我的测试用例,我需要能够点击此div中的特定链接。如果链接位于链接的可见部分,则工作正常。但是如果我必须滚动才能找到它,它就无法工作。
我尝试了几件事:
Action Builder发送密钥Keys.KEY_DOWN - 这不起作用。
Actions builder = new Actions(driver);
builder.keyDown(Keys.ARROW_DOWN).perform();
这不起作用。它给出了一个错误,说
key down / Up events only make sense for modifier keys.
我也试过以下
JavascriptExecutor js = (JavascriptExecutor) driver;
js.executeScript("arguments[0].scrollTop = arguments[1];",driver.findElement(By.id("<div-id>")), 100);
以上两种都不起作用。
任何人都可以提出一种在div中滚动的方法,直到找到一个我应该使用的元素?
谢谢你, 斯利拉姆
答案 0 :(得分:0)
我的方法的Python代码示例(js部分 - 是您需要的)。漂亮的动画卷轴。唯一的选择是inside_element
对
def scroll_to_element(driver, element, inside_element=None):
if not inside_element:
script = """
var elem = arguments[0];
jQuery('html, body').animate({
scrollTop: jQuery(elem).offset().top
}, 'slow', null
);
"""
else:
script = """
var elem = arguments[0];
var inside = arguments[1];
var posArray = jQuery(arguments[0]).position();
jQuery(inside).animate({scrollTop: posArray.top}, 'slow', null);
"""
driver.execute_script(script, element, inside_element)