web自动化测试难点 滚动条操作、日期框处理、上传文件
阅读原文时间:2023年07月08日阅读:2

如何把页面滑到最低部?

一般来说,做web自动化测试时,不需要单独写代码,把页面滑到可见,因为click操作,只要是元素存在并且加载出来了,就可以点击到,无需另外写滑动元素的代码。

如果特殊情况需要滑动的话,python中的selenium 库中的execute_script方法执行js语句来实现滚动功能

'arguments[元素对象].scrollIntoView();',元素对象

driver.execute_script('arguments[0].scrollIntoView(false);',ele)#移动元素到底部可见
driver.execute_script('arguments[0].scrollIntoView();',ele)#移动元素到顶部可见
driver.execute_script('window.scrollTo(0,document.body.scrollHeight)')#将页面移动到页面底部

driver.execute_script("window.scrollTo(document.body.scrollHeight,0)")#将页面移动到页面顶部

日期框处理

相信大家在测试web页面时,遇到过日期框,是那种只能选择的,不能直接输入,那这种做web自动化测试时,该如何处理呢

改变属性值,让它可以直接输入

from selenium import webdriver

driver = webdriver.Chrome()

pha_js = "var a = arguments[0];a.readOnly=false;a.value= arguments[1];"#js语法

loc = ("xpath","//*[@id='train_date']")
ele = driver.find_element(*loc)

now_10 = "1111" # datetime获取当前时间

driver.execute_script("var a = arguments[0];a.readOnly=false;a.value= arguments[1];",ele,now_10)

12306 日期选择框的例子

driver=webdriver.Chrome()
driver.get('https://www.12306.cn/index/')

driver.implicitly_wait(20)

#先选择出发地,再修改出发地
driver.find_element_by_id("fromStationText").click()
driver.find_element_by_xpath('//li[@title="北京"]').click()
pha_js='var a=document.getElementById("fromStationText");a.value="深圳"'
driver.execute_script(pha_js)

#先选择到达地,再修改到达地
driver.find_element_by_id("toStationText").click()
driver.find_element_by_xpath('//li[@title="上海"]').click()
arive_js='var a=document.getElementById("toStationText");a.value="常德"'
driver.execute_script(arive_js)

#日期处理
time_js='var a=document.getElementById("train_date");a.readOnly=false;a.value="2020-05-01"'
driver.execute_script(time_js)

#日期处理
ele4=(By.ID,'search_one')
driver.find_element(*ele4).click()

上传操作

web自动化测试,如何模拟上传文件操作

由于上传操作,不是web界面的,不能使用python中的selenium库了

只能使用别的库

1.先安装pip install pypiwin32 库

# 1\找到输入框和打开按钮 元素;2、输入地址,点击打开。

前提 :windows上传窗口已经出现。sleep1-2秒等待弹出的出现。

def upload(filePath,browser_type="chrome"):
if browser_type == "chrome":
title = "打开"
else:
title = ""

#找元素  
#一级窗口"#32770","打开"  
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)    #四级  
#打开按钮  
button = win32gui.FindWindowEx(dialog,0,'Button',"打开(&O)")   #二级

#往编辑当中,输入文件路径 。  
win32gui.SendMessage(edit,win32con.WM\_SETTEXT,None,filePath)    #发送文件路径  
win32gui.SendMessage(dialog, win32con.WM\_COMMAND, 1, button)    #点击打开按钮