WEB自动化测试(三)

等待

1、固定等待,也就是使用sleep()方法

2、隐式等待,使用到的方法是implicitly_wait的方法,可以把它理解为设置最长等待时间

3、显式等待,主要指的是程序每隔一段时间执行自定义的程序判断条件,如果判断成立,程序就会继

续执行,那么如果判断失败,就会报TimeOutExpection的异常信息。

import time

from selenium import webdriver
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as es
from selenium.webdriver.common.by import By
'''
element_to_be_clickable():元素可见时进行操作

'''


隐式等待



# driver=webdriver.Chrome()
# driver.maximize_window()
# driver.get('https://www.baidu.com/')
# driver.implicitly_wait(60)
# so=WebDriverWait(
# driver=driver,timeout=10).until(
# method=es.element_to_be_clickable((By.ID,'kw')))
# so.send_keys('段舒元')
# print('输入的关键字:',so.get_attribute('value'))
# driver.quit()


显式等待

'''text_to_be_present_in_element()元素的文本资源加载出来'''



# driver=webdriver.Chrome()
# driver.maximize_window()
# driver.get('https://mail.sina.com.cn/#')
# driver.implicitly_wait(60)
# driver.find_element_by_class_name('loginBtn').click()
# time.sleep(5)
# divText=WebDriverWait(
# driver=driver,
# timeout=10).until(
# method=es.text_to_be_present_in_element((
# By.XPATH,
# '/html/body/div[3]/div/div[2]/div/div/div[4]/div[1]/div[1]/div[1]/span[1]'),text_='请输入邮箱名'))
# driver.quit()




'''判断元素是否可见'''



driver=webdriver.Chrome()
driver.maximize_window()
driver.get('https://www.baidu.com/')
driver.implicitly_wait(60)
time.sleep(5)
about=WebDriverWait(
driver=driver,
timeout=10).until(
method=es.visibility_of_element_located((
By.LINK_TEXT,
'关于百度')))
print(about.text)
about.click()
time.sleep(5)
driver.quit()

键盘事件



from selenium import webdriver
from selenium.webdriver.common.keys import Keys
import time as t



driver=webdriver.Chrome()
driver.maximize_window()
driver.implicitly_wait(30)
driver.get('https://www.baidu.com/')
so=driver.find_element_by_id('kw')
so.send_keys('Selenum3')
so.send_keys(Keys.CONTROL,'w')
t.sleep(5)
# 全部选择输入的关键字
so.send_keys(Keys.CONTROL,'a')
t.sleep(3)
# 然后复制
so.send_keys(Keys.CONTROL,'c')
t.sleep(3)
# 然后删除
so.send_keys(Keys.BACKSPACE)
t.sleep(3)
# 然后粘贴关键字
so.send_keys(Keys.CONTROL,'v')
t.sleep(5)

so.send_keys(Keys.F12)
t.sleep(5)
so.send_keys(Keys.F5)
t.sleep(5)
driver.quit()


js操作



# javascript全称

from selenium import webdriver
import time as t

# dricer=webdriver.Chrome()
# dricer.maximize_window()
# dricer.get('https://cn.bing.com/')
# dricer.implicitly_wait(30)
# dricer.find_element_by_id('sb_form_q').send_keys('段舒元')
# dricer.find_element_by_id('search_icon').click()
# t.sleep(10)
# t.sleep(3)

# 浏览器滑动到底部
# down='var q=document.documentElement.scrollTop=10000'
# dricer.execute_script(down)
# t.sleep(3)
# dricer.find_element_by_link_text('2').click()
# t.sleep(3)
# dricer.execute_script(down)
# t.sleep(5)
# # 浏览器滑动到顶部
# up='var q=document.documentElement.scrollTop=0'
# dricer.execute_script(up)
# t.sleep(3)
# dricer.quit()



富文本


# driver=webdriver.Chrome()
# driver.maximize_window()
# driver.get('https://uutool.cn/ueditor/')
# driver.implicitly_wait(30)
# t.sleep(3)
# driver.switch_to.frame(0)
# t.sleep(3)
# driver.find_element_by_xpath('/html/body').send_keys('段舒元')
# t.sleep(3)
# driver.quit()



 

 




'''时间控件'''


'''
那么我们需要填写时间的属性,具体解决问题的步骤为:

取消时间控件的只读属性
取消只读属性后,操作input控件的value,其实我们知道input里面输入的内容最终是在value的属性里面。
'''



def startTime(driver,content):
'''开始时间控件'''
js="$(\"input[placeholder='开始时间≥当前时间']\").removeAttr('readonly');" \
"$(\"input[placeholder='开始时间≥当前时间']\").attr('value','{0}')".format(content)
driver.execute_script(js)


def endTime(driver,content):
'''结束时间控件'''
js="$(\"input[placeholder='结束时间>开始时间']\").removeAttr('readonly');" \
"$(\"input[placeholder='结束时间>开始时间']\").attr('value','{0}')".format(content)
driver.execute_script(js)


driver=webdriver.Chrome()
driver.maximize_window()
driver.get('file:///D:/code/testDev/WEB%E8%87%AA%E5%8A%A8%E5%8C%96%E6%B5%8B%E8%AF%95/Time/Time/index.html')
t.sleep(3)
startTime(driver=driver,content='2000-09-15 00:00')
t.sleep(3)
endTime(driver=driver,content='2100-09-15 00:00')
t.sleep(3)
driver.get_screenshot_as_file(filename='时间控件.bmp')
driver.quit()

 

 




posted @ 2022-04-08 18:58  段舒元  阅读(64)  评论(0编辑  收藏  举报