Selenium+python自动化 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)

#encoding=utf-8
from selenium import webdriver
from time import sleep
import os

driver=webdriver.Chrome()
url='file:///' + os.path.abspath(os.path.dirname(os.getcwd()))+'/html/注册A.html'
driver.maximize_window()
driver.get(url)

# 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() 专门用于执行JS脚本的
# driver.execute_script(scroll)
sleep(2)
driver.execute_script(scroll)

# 2)滑动到指定元素
# scrollIntoView(false) 表示元素滚动到屏幕的底部
# scrollIntoView(true) 表示元素滚动到屏幕的中间
# scroll="document.getElementById('selectA').scrollIntoView(true)"
# 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')

你可能感兴趣的:(Selenium+python自动化 js之屏幕滑动和日历操作)