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)
二、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')