Web自动化测试(常用方法)

目录

1.时间等待方法

1、强制等待

2、 隐式等待

3、显式等待

2.下拉框操作方法

3.Alert 弹出框方法 

4.附件上传操作方法

1.元素标签如果是input,则可以send_keys方法直接输入文件地址进行文件上传

2.使用pywinauto(只能在window平台上使用)

3.跨平台上传

1.时间等待方法

1、强制等待

导入定时等待库

from time import sleep 
#或者 
import time

time.sleep(10) # 表示强行等待10s。当执行下一句代码,这种等待方式时间到了就执行下一个语句,但不能保证在等待的时间内元素真正被加载了出来。

2、 隐式等待

driver.implicitly_wait(30) #等待30s


表示在规定的时间内页面的所有元素都加载完了就执行下一步,否则一直等到时间截止,然后再继续下一步。
缺点:需要的元素已经加载出来了,但页面还没有加载完,需要继续等待页面加载完才能执行下一步操作。


3、显式等待

from selenium.webdriver.support.wait import WebDriverWait #导入显性等待包

WebDriverWait,配合该类的有until()和until_not()方法,表示程序每隔x秒去判断一下指定的元素是否加载完,加载完了就执行下一步,否则继续每隔x秒去判断,指定时间截止。如果超时就会抛出异常。

 WebDriverWait(driver, 10,0.5).until(driver.find_element( By.CSS_SELECTOR,""))

2.下拉框操作方法

from selenium.webdriver.support.select import Select#导包
se=driver.find_element(By.ID, 'provise')#定位到元素
select=Select(se)#实例化
select.select_by_index(1)#通过索引选择下拉元素
select.select_by_value('bj')#通过下拉元素的value选择下拉元素
select.select_by_visible_text('上海')#通过下拉元素的文本内容选择下拉元素

除此之外其他一些不常用的有:

  • dselect_by_value() :根据值反选 
  • dselect_by_index() :根据索引反选   
  • dselect_by_visible_text() :根据文本反选 
  • dselect_all():反选所有
  •  opitions:所有选项
  • all_selected_options:所有选中选项 
  • first_selected_option :第一个选择选项

3.Alert 弹出框方法 

alert/confim/prompt,其中

  • alert窗口:提示用户信息仅有确认按钮
  • confirm窗口:有确认和取消按钮
  • prompt窗口:有输入框、确认和取消按钮

text: 返回(获取)alert/confirm/prompt中的文字信息

accept():接受现有警告框

dismiss(): 放弃现有警告框

send_keys(keys_ToSend):发送文本至警告框

#切换到alert
        alert = self.driver.switch_to.alert
        print(alert.text)
        sleep(2)
        alert.accept()
#confirm弹框
        self.driver.find_element_by_id('confirm').click()
        confirm = self.driver.switch_to.alert
        print(confirm.text)
        sleep(3)
        #确定
        # confirm.accept()
        #取消
        confirm.dismiss()
#prompt弹框
        self.driver.find_element_by_id('prompt').click()
        prompt = self.driver.switch_to.alert
        print(prompt.text)
        prompt.send_keys('20')
        sleep(3)
        prompt.accept()

4.附件上传操作方法

1.元素标签如果是input,则可以send_keys方法直接输入文件地址进行文件上传

ele=driver.find_element_by_id("id")
ele.send_keys(r"c:\xxx.txt")

2.使用pywinauto(只能在window平台上使用)

pip install pywinauto

from pywinauto.keyboard import send_keys
#找到元素,click(),调出文件上传的系统弹框界面
ele=driver.find_element_by_id("id")
ele.click()
time.sleep(2)
#输入文件路径
send_keys("文件路径")
#回车,上传文件
send_keys("{VK_RETURN}")

3.跨平台上传

使用pyautogui跨平台
pip install pillow==6.2.2
pip insall pyautogui
 
pyautogui.write("d:xxx.txt")
pyautogui.press("enter")

pyperclip.copy(r"d:\用户\文件.txt")#文件路径
time.sleep(2)
pyautogui.hotkey("ctrl","v")#粘贴
pyautogui.press("enter",presses=2)#输入两次enter键,防止出错
 

猜你喜欢

转载自blog.csdn.net/m0_58807719/article/details/130035800