skynothing 发表于 2016-4-7 08:41:23

【求助】selenium python 如何实现在元素上滚动

如图所示,想实现对Section 1里段落文字滚动的效果,在网上查了点,但还是没能实现效果
环境:Python 2.7 + Selenium2.50.0 + Chrome 49.0
URL: http://demoqa.com/accordion/

代码:
element = driver.find_element_by_css_selector('div#ui-accordion-accordion-panel-0 p')
driver.execute_script("arguments.scrollIntoView(true)", element)

执行结果: 页面滚动了,但是Section 1里段落文字并没有滚动

求助大神,该怎么解决?




skynothing 发表于 2016-4-7 10:32:11

问题已解决
将其换成如下就可以实现:
driver.execute_script("return arguments.scrollTop=10000;", element)

scrollIntoView(true)是将其移动到页面上边界
scrollTop赋值则是进行滚动

若尘_51 发表于 2016-4-7 11:10:12

本帖最后由 若尘_51 于 2016-4-7 11:13 编辑

牛掰请教下: 那个滚动条的位置是怎么定位到?
我一般都是这样处理的:
driver.find_element_by_id('tabs-1').click()
for i in range(5):
    driver.find_element_by_id('tabs-1').send_keys(Keys.DOWN)

skynothing 发表于 2016-4-8 08:26:18

滚动条的位置?个人理解应该是出现滚动条的页面元素,例如本帖中Section 1中那段文字所在的div,定位到这个div就可以进行滚动了
希望没有误解你的意思:)
页: [1]
查看完整版本: 【求助】selenium python 如何实现在元素上滚动