一、使用js操作页面元素
1.使用js脚本,操作日期控件
复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29""" js操作 execute_script """ import time from selenium import webdriver from selenium.webdriver.common.by import By from selenium.webdriver.common.keys import Keys driver=webdriver.Chrome() driver.get("https://www.12306.cn/index/") time.sleep(2) #只读日期控件元素 el_data=driver.find_element(By.ID,"train_date") #去掉readonly属性‐‐‐》通过js操作元素driver.execute_script() #arguments 把execute_script后面的第二个或者第三个或者到第n个参数到放在argum ents js="var el=arguments[0];el.removeAttribute('readonly');" #执行js脚本,去掉readonly属性 driver.execute_script(js,el_data) #清除日期控件默认值 el_data.clear() time.sleep(2) #日期控件输入设置的日期 el_data.send_keys('2021‐10‐01') print("时间控件设置的日期:",el_data.get_attribute("value"))
2.使用js脚本,操作滚动条
复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31""" 滚动条操作 """ import time from selenium import webdriver from selenium.webdriver.common.by import By from selenium.webdriver.common.keys import Keys from selenium.webdriver.support.wait import WebDriverWait from selenium.webdriver.support import expected_conditions as EC driver=webdriver.Chrome() driver.get("https://www.baidu.com") driver.find_element(By.ID,"kw").send_keys("selenium webdriver") driver.find_element(By.ID,"su").click() loc=(By.XPATH,"//div[@id='7']/h3/a") #显示等待 presence_of_element_located不一定元素可见,只要存在即可 WebDriverWait(driver,15).until(EC.presence_of_element_located(loc)) el2=driver.find_element(*loc) time.sleep(2) #el2.click() #实现滚动条从顶部到底部 driver.execute_script("scrollTo(0,document.body.scrollHeight)") time.sleep(2) #实现滚动条从浏览器底部到顶部 driver.execute_script("scrollTo(document.body.scrollHeight,0)") time.sleep(2) #操作哪个元素,滚动条移动到元素附近(元素与页面的顶部对齐,元素与页面的底部对齐) js2="arguments[0].scrollIntoView(false);" driver.execute_script(js2,el2) time.sleep(2)
二、文件上传
1.直接输入
复制代码
1
2
3
4
5
6
7from selenium.webdriver.common.by import By from selenium import webdriver driver=webdriver.Chrome() driver.get("xxxxx") el_file=driver.find_element(By.ID,"f1") el_file.send_keys(“文件地址”)
2.不可以直接输入,只能选择
复制代码
1
2
3
4
5
6
7
8
9
10#如何定位windows窗口及窗口的元素? #环境准备 #1、定位工具(失败window窗口及元素)‐‐‐winSpy #2、第三方库 pywin3 #安装: pip install pywin3 #切换源 pip install ‐i https://pypi.douban.com/simple pywin3 #如何定位windows窗口及窗口的元素? #文件上传输入框: #32770‐ComboBoxEx32 ‐ComboBox ‐Edit #打开按钮:#32770‐Button
复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35import win32gui import win32con driver=webdriver.Chrome() driver.get("xxxxx") time.sleep(4) el_file=driver.find_element(By.ID,"f1") ActionChains(driver).move_to_element(el_file).click().perform() def upload(filePath,browser_type="Chrome"): if browser_type == "Chrome": title = "打开" else: title = "文件上传" #32770‐ComboBoxEx32 ‐ComboBox ‐Edit dialog = win32gui.FindWindow("#32770",title) #一级窗口 ‘打开窗口’ #二级 ComboBoxEx32 = win32gui.FindWindowEx(dialog,0,"ComboBoxEx32",None) #三级 ComboBox =win32gui.FindWindowEx(ComboBoxEx32,0,"ComboBox",None) #四级 edit = win32gui.FindWindowEx(ComboBox,0,"Edit",None) #32770‐Button button = win32gui.FindWindowEx(dialog,0,"Button",None) #四级 #往文件名编辑框中输入文件路径 #上传操作 win32gui.SendMessage(edit,win32con.WM_SETTEXT,None,filePath) #点击打开按钮 win32gui.SendMessage(dialog,win32con.WM_COMMAND,1,button) filepath="文件地址" time.sleep(5) upload(filePath=filepath) print("文件上传成功") time.sleep(10)
最后
以上就是拼搏钢笔最近收集整理的关于selenium(三)使用js操作元素和文件上传的全部内容,更多相关selenium(三)使用js操作元素和文件上传内容请搜索靠谱客的其他文章。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复