博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
python selenium 滚动条处理、页面拖动
阅读量:4926 次
发布时间:2019-06-11

本文共 3311 字,大约阅读时间需要 11 分钟。

  selenium中没有直接控制滚动条的方法,可以使用方法:execute_script(),可以直接执行js的脚本。

  一、竖向滚动条控制,三种方法总有一款适合你。

    1.滚动条拉到最底:

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

      driver.execute_script(js)

    2.滚动条拉到最底:    

      js="var q=document.getElementById('id').scrollTop=10000"

      driver.execute_script(js)

      这里的id为滚动条的id,滚动条没有id的网页此方法不适用。

    3.滚动条拉到最底:

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

      driver.execute_script(js)

      可以修改scrollTop 的值来定位右侧滚动条的位置,0是最最顶部,10000是最底部。   

            在百度中搜索selenium,拖动滚动条至最底端:

from selenium import webdriverfrom selenium.webdriver.support.ui import WebDriverWaitfrom selenium.webdriver.support import expected_conditions as ECfrom selenium.webdriver.common.by import Byfrom time import sleepdriver = webdriver.Chrome()driver.get("https://www.baidu.com")driver.maximize_window()# 搜索 seleniumdriver.find_element_by_id("kw").send_keys("selenium")driver.find_element_by_id("su").click()# 等待元素可见WebDriverWait(driver,10).until(EC.visibility_of_element_located((By.XPATH,'//*[@id="5"]/h3/a')))# 将滚动条下拉至最低js="var q=document.documentElement.scrollTop=10000"driver.execute_script(js)

   二、横向滚动条控制

    1.通过坐标控制横向和纵向滚动条 scrollTo(x, y)

    js = "window.scrollTo(100,400);"

    driver.execute_script(js)

 

  三、将目标元素拖动到页面可见区域

    1.可见元素与页面“底端”对齐,scrollIntoView(false)

    2.可见元素与页面“顶端”对齐,scrollIntoView()

  在百度中搜索selenium,拖动元素至页面底端,便于点击操作(因为在百度中将元素拖动至页面顶端时,会被百度网页自带的表头遮挡住,点击时会报错)

from selenium import webdriverfrom selenium.webdriver.support.ui import WebDriverWaitfrom selenium.webdriver.support import expected_conditions as ECfrom selenium.webdriver.common.by import Byfrom time import sleepdriver = webdriver.Chrome()driver.get("https://www.baidu.com")driver.maximize_window()# 搜索 seleniumdriver.find_element_by_id("kw").send_keys("selenium")driver.find_element_by_id("su").click()# 等待元素可见WebDriverWait(driver,10).until(EC.visibility_of_element_located((By.XPATH,'//*[@id="5"]/h3/a')))# 1.先找到元素element = driver.find_element_by_xpath('//*[@id="5"]/h3/a')# 2.利用js将元素拖动到可见区域driver.execute_script("arguments[0].scrollIntoView(false);",element)  #可见元素与页面“底端”对齐

 执行结果如下:

 

  三、滚动页面到最底部

      方法:window.scrollTo

      driver.execute_script("window.scrollTo(0,document.body.scrollHeight)")

from selenium import webdriverfrom selenium.webdriver.support.ui import WebDriverWaitfrom selenium.webdriver.support import expected_conditions as ECfrom selenium.webdriver.common.by import Byfrom time import sleepdriver = webdriver.Chrome()driver.get("https://www.baidu.com")driver.implicitly_wait(20)driver.maximize_window()# 搜索 seleniumdriver.find_element_by_id("kw").send_keys("selenium")driver.find_element_by_id("su").click()# 等待元素可见WebDriverWait(driver,10).until(EC.visibility_of_element_located((By.XPATH,'//*[@id="5"]/h3/a')))# 1.操作元素driver.find_element_by_xpath('//*[@id="5"]/h3/a').click()# 2.等待新窗口打开WebDriverWait(driver,10).until(EC.new_window_is_opened(windows))# 获取当前所有窗口句柄windows = driver.window_handles# 3.切换到最后一个窗口driver.switch_to.window(windows[-1])# 滚动页面到最底部driver.execute_script("window.scrollTo(0,document.body.scrollHeight)")sleep(5)driver.quit()

 

 

 

==================================================================================

尊重原创,若需转载请注明出处:

================================================================================== 

转载于:https://www.cnblogs.com/lizhe860/p/9456356.html

你可能感兴趣的文章
django-cms 代码研究(八)app hooks
查看>>
peewee Model.get的复杂查询
查看>>
IE浏览器兼容性设置的一些问题
查看>>
SQL Server复制入门(二)----复制的几种模式
查看>>
javascript 简单认识
查看>>
tomcat 系统架构与设计模式 第二部分 设计模式 转
查看>>
scanf中的%[^\n]%*c格式
查看>>
启动Eclipse报Initializing Java Tooling错误解决方法
查看>>
用jquery来实现类似“网易新闻”横向标题滑动的移动端页面
查看>>
(原)基于物品的协同过滤ItemCF的mapreduce实现
查看>>
CSS可以和不可以继承的属性
查看>>
eclipse每次当我按ctrl+鼠标点击代码,自动关闭,产生原因及解决办法!!
查看>>
hbase
查看>>
用PHP将Unicode 转化为UTF-8
查看>>
HDOJ1002 A+B Problem II
查看>>
ADB server didn't ACK(adb不能开启
查看>>
网页内容抓取
查看>>
分布式和集群的区别
查看>>
Python基础(三)
查看>>
Sql server在cmd下的使用
查看>>