八 Selenium之文件上传,获取浏览器的名字,获取页面源码,操作JS,用JS的方法输入日期

一 文件上传

一般分两个场景
    ①一种是input标签,type=file,可以用Selenium提供的send_keys()方法轻松解决;
    ②另一种非input标签实现起来比较困难,可以借助autoit工具或者SendKeys第三方库.
#第一种方式进行文件上传
driver.find_element_by_name('file').send_keys(r"D:\test\xuexi\test\14.png")

二 获取浏览器的名字

print(driver.name)

三 获取页面源码

driver.page_source

四 操作JS

1.滚动条回到顶部:
js="var q=document.getElementById('id').scrollTop=0"
driver.execute_script(js)
2.滚动条拉到底部
js="var q=document.documentElement.scrollTop=10000"
driver.execute_script(js)
Chrome 浏览器中不能操纵滚动条解决办法:
js = "var q=document.body.scrollTop=0"
driver.execute_script(js)

scrollTo  函数
scrollTo 函数不存在兼容性问题,直接用这个函数就可以了
--scrollHeight 获取对象的滚动高度。
--scrollLeft 设置或获取位于对象左边界和窗口中目前可见内容的最左端之间的距离。
--scrollTop 设置或获取位于对象最顶端和窗口中可见内容的最顶端之间的距离。
--scrollWidth 获取对象的滚动宽度。
#滚动到底部
js = "window.scrollTo(0,document.body.scrollHeight)"
driver.execute_script(js)
#滚动到顶部
js = "window.scrollTo(0,0)"
driver.execute_script(js)
示例

五 js  方法输入日期

from selenium import webdriver
import time
driver = webdriver.Chrome();
driver.get('https://www.12306.cn/index/')
time.sleep(5)
#去掉readonly属性
js = "document.getElementById('train_date').removeAttribute('readonly')"
driver.execute_script(js)
#清空文本后输入值
driver.find_element_by_id('train_date').clear()
time.sleep(3)
driver.find_element_by_id('train_date').send_keys('2019-02-26')

 

 

posted on 2020-03-22 11:24  rwwh  阅读(143)  评论(0)    收藏  举报

导航