Selenium3+python自动化009- js之屏幕滑动和日历操作

一、js的滑屏

1)以下脚本实现js滑屏
scroll="document.documentElement.scrollTop=800"#垂直滚动 px
scroll = "document.documentElement.scrollLeft=1000"#水平滚动
scroll="window.scrollTo(100,500)"#滚动到指定坐标
scroll="window.scrollBy(0,100)"#滑动到相对坐标
scroll="window.scrollTo(0,document.body.scrollHeight)"#获取body的高度,滑到底部
document.body.scrollWidth 获取body宽度

driver.execute_script(scroll)


2)滑动到指定元素
scroll="document.getElementById('xxxx').scrollIntoView(false)"
driver.execute_script(scroll)

复制代码
 1 #encoding=utf-8
 2 from selenium import webdriver
 3 from time import sleep
 4 import os
 5 
 6 driver=webdriver.Chrome()
 7 url='file:///' + os.path.abspath(os.path.dirname(os.getcwd()))+'/html/注册A.html'
 8 driver.maximize_window()
 9 driver.get(url)
10 
11 # 1)以下脚本实现js滑屏
12 scroll="document.documentElement.scrollTop=800"#垂直滚动 px
13 # scroll = "document.documentElement.scrollLeft=1000"#水平滚动
14 # scroll="window.scrollTo(100,500)"#滚动到指定坐标
15 # scroll="window.scrollBy(0,100)"#滑动到相对坐标
16 # scroll="window.scrollTo(0,document.body.scrollHeight)"#获取body的高度,滑到底部
17 # document.body.scrollWidth 获取body宽度
18 
19 # driver.execute_script() 专门用于执行JS脚本的
20 # driver.execute_script(scroll)
21 sleep(2)
22 driver.execute_script(scroll)
23 
24 # 2)滑动到指定元素
25 # scrollIntoView(false) 表示元素滚动到屏幕的底部
26 # scrollIntoView(true) 表示元素滚动到屏幕的中间
27 # scroll="document.getElementById('selectA').scrollIntoView(true)"
28 # driver.execute_script(scroll)
View Code
复制代码

 

 

二、JS的日历操作

修改元素属性
js="document.getElementById('train_date').removeAttribute('readonly');"

复制代码
#encoding=utf-8
from selenium import webdriver
from time import sleep
import os

driver=webdriver.Chrome()

driver.maximize_window()
driver.get('https://www.12306.cn/index/')
js="document.getElementById('train_date').removeAttribute('readonly');"
# 移除readonly属性
driver.execute_script(js)
sleep(2)
# 清空默认日期
driver.find_element_by_id('train_date').clear()
driver.find_element_by_id('train_date').send_keys('2019-02-28')
View Code
复制代码

 

posted @   思江  阅读(566)  评论(0编辑  收藏  举报
编辑推荐:
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· Vue3状态管理终极指南:Pinia保姆级教程
点击右上角即可分享
微信分享提示