selenium 控制chrome的滚动条

看到书上有一个控制chrome的页面滚动条的方法,试着运行了一下,总是报错。在网上也找到过这个方法,但说的都比较简单,就是运行不了。可能是我对它理解的不够。

幸好,又找到了另外一个方法,解决了这个问题,能成功的操作页面的滚动条。

贴代码:

#coding=utf-8import time

from selenium import webdriver

driver=webdriver.Chrome()driver.get(‘https://www.baidu.com‘)

driver.maximize_window()driver.implicitly_wait(20)driver.find_element_by_id(‘kw‘).send_keys(‘hello!‘)driver.find_element_by_id(‘su‘).click()

a=driver.current_window_handledriver.switch_to_window(a)time.sleep(3)# js01 = "window.scrollBy(0,1000)"  #滚动页面,控制页面的滚动条# driver.execute_script(js01)

targetElem = driver.find_element_by_xpath(‘//*[@id="6"]/h3/a‘)driver.execute_script("arguments[0].focus();",targetElem) #滚动到页面的指定元素

参考文章内容:——跟我遇到的问题非常类似。

目的:通过selenium控制浏览器滚动条

原理:通过 driver.execute_script()执行js代码,达到目的

     driver.execute_script("window.scrollBy(0,1000)"

语法:scrollBy(x,y)

参数  描述

x   必需。向右滚动的像素值。

y   必需。向下滚动的像素值。

或者用

      driver.execute_script("window.scrollTo(0,1000)"

语法:scrollBy(x,y)

参数  描述

x   必需。必需。要在窗口文档显示区左上角显示的文档的 x 坐标。

y   必需。必需。要在窗口文档显示区左上角显示的文档的 y 坐标。

配合chrome插件能快速找到位置:page ruler

问题总结:

为了达到目的我想到了2种方法:

1.网上大多是拿到浏览器滚动条的js代码,然后执行,不知道为什么我这亲测没有成功;

   js="var q=document.documentElement.scrollTop=10000"

   driver.execute_script(js)

2.通过模拟键盘的形式去滚动屏幕,也没成功,也许是我对这个用法还不熟练

 driver.find_element_by_css_selector(‘.fadeInUp.animated‘).send_keys(Keys.DOWN)

原文地址:https://www.cnblogs.com/stonmy2008/p/12537240.html

时间: 2024-11-05 14:54:23

selenium 控制chrome的滚动条的相关文章

selenium操作下拉滚动条的几种方法

数据采集中,经常遇到动态加载的数据,我们经常使用selenium模拟浏览器操作,需要多次下拉刷新页面才能采集到所有的数据,就此总结了几种selenium操作下拉滚动条的几种方法 我这里演示的是Java版本的,使用chromedriver,当然你可以换成python或其他语言,浏览器用firefox或者phantomjs(无头浏览器),大部分都是适用的,不同浏览器有略微的差异. 初始化一个浏览器 首先要允许浏览器运行js脚本 DesiredCapabilities sCaps = new Desi

selenium对js的执行操作——selenium控制浏览器页面的滚动

调用JavaScript代码 虽然WebDriver提供了操作浏览器的前进和后退方法,但对于浏览器滚动条并没有提供相应的操作方法.在这种情况下,就可以借助JavaScript来控制浏览器的滚动条.WebDriver提供了execute_script()方法来执行JavaScript代码. 用于调整浏览器滚动条位置的JavaScript代码如下: window.scrollTo(0,450); window.scrollTo()方法用于设置浏览器窗口滚动条的水平和垂直位置.方法的第一个参数表示水平

【python爬虫】利用selenium和Chrome浏览器进行自动化网页搜索与浏览

功能简介:利用利用selenium和Chrome浏览器,让其自动打开百度页面,并设置为每页显示50条,接着在百度的搜索框中输入selenium,进行查询.然后再打开的页面中选中“Selenium - 开源中国社区”,并打开页面 知识简介: selenium的作用: 1).最初用于网站自动化测试,近几年,用于获取精确的网站快照. 2).可以直接运行在浏览器上,让浏览器自动加载页面,获取需要的数据,还可以页面截屏,或者判断网站上某些动作是否发生. 项目步骤: 1.利用google的Chrome浏览器

selenium启动Chrome时,加载用户配置文件

selenium启动Chrome时,加载用户配置文件 Selenium操作浏览器是不加载任何配置的,网上找了半天,关于Firefox加载配置的多点,Chrome资料很少,下面是关于加载Chrome配置的方法: 一.加载所有Chrome配置 用Chrome地址栏输入chrome://version/,查看自己的“个人资料路径”,然后在浏览器启动时,调用这个配置文件,代码如下: #coding=utf-8 from selenium import webdriver option = webdriv

selenium启动chrome出错处理:Message: 'chromedriver' executable needs to be in PATH

selenium启动chrome出错处理:Message: 'chromedriver' executable needs to be in PATH

Chrome 的滚动条修改.

该方法针对于win下Chrome任何版本(未测试基于Chrome内核的其他浏览器),Lunix就是目录换了一下 目录是:**\Google\Chrome\User Data\Profile 2\User StyleSheets 目录可能会变...但是最后肯定是StyleSheets. 文件肯定是下面的这个 然后看到一个叫Custom的css文件 右键编辑 代码: ::-webkit-scrollbar-track-piece{ background-color:#fff; -webkit-bor

selenium使用chrome多开并且cookie独立

使用场景:项目中使用selenium驱动chrome执行登录网站.获取数据操作.但发现启动多个chrome,多个帐号同时登录时,cookie是共享的,无法达到多个帐号同时登录的目的. 解决思路:发现chrome是支持多用户的,每次使用不同用户启动chrome,这样就可以达到cookie独立效果.(前提需要手动新建N个chrome用户,然后copy User Data文件夹N份,编号重命名) 编码设置: //Chrome地址栏输入chrome://version/,查看自己的“个人资料路径” /*

selenium与chrome浏览器及驱动的版本匹配

用selenium+python+webdriver完成UI功能自动化,经常会碰到浏览器版本与驱动的版本不匹配而引起报错,下面就selenium与chrome浏览器及驱动的版本匹配 做个总结. 使用WebDriver在Chrome浏览器上进行测试时,需要先下载与本机chrome浏览器对应的驱动程序,驱动程序名为chromedriver:chromedriver的版本需要和本机的chrome浏览器对应,才能正常使用,具体步骤如下: 第一步:下载对应版本的chromedriver驱动文件,具体版本请

早上在linux下用selenium启动Chrome时出现问题:

早上在linux下用selenium启动Chrome时出现问题:报错: Traceback (most recent call last): File "get2.py", line 62, in <module> browser = webdriver.Chrome() File "/root/.pyenv/versions/anaconda3-5.1.0/lib/python3.6/site-packages/selenium/webdriver/chrome