WEB自动化测试(二)

元素属性


'''is_selected():是否勾选'''

# driver=webdriver.Chrome()
# driver.maximize_window()
# driver.get('https://mail.sina.com.cn/')
# obj=driver.find_element_by_id('store1')
# print('验证是否勾选:',obj.is_selected())
# time.sleep(5)
# obj.click()
# print('验证是否勾选:',obj.is_selected())
# time.sleep(5)
# driver.quit()



'''is_enabled():是否可编辑'''
# driver=webdriver.Chrome()
# driver.maximize_window()
# driver.get('https://www.baidu.com/')
# so=driver.find_element_by_id('kw')
# print(so.is_enabled())
# time.sleep(5)
# driver.quit()





'''is_displayed():是否可隐藏'''

# driver=webdriver.Chrome()
# driver.maximize_window()
# driver.get('https://www.baidu.com/')
# about=driver.find_element_by_link_text('关于百度')
# print(about.is_displayed())
# driver.quit()


下拉框
'''下拉框操作步骤:
1、先导入select类
2、首先对select类实例化
3、定位到下拉框的元素属性
4、使用select类进行实例化后的对象调用该类里面的方法
'''

# # 索引


from selenium import webdriver
from selenium.webdriver.support.select import Select
import time

# 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/index(1).html')
# # webelement指的是下拉框的元素对象
# nr=driver.find_element_by_id('nr')
# obj=Select(webelement=nr)
# time.sleep(3)

# obj.select_by_index(3)
#
# time.sleep(3)
# driver.quit()


# 文本方式
from selenium import webdriver
from selenium.webdriver.support.select import Select
import time

# 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/index(1).html')
# # webelement指的是下拉框的元素对象
# nr=driver.find_element_by_id('nr')
# obj=Select(webelement=nr)
# time.sleep(3)
# obj.select_by_visible_text('Java语言')
#
# time.sleep(3)
# driver.quit()

# value方式
from selenium import webdriver
from selenium.webdriver.support.select import Select
import time

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/index(1).html')
# webelement指的是下拉框的元素对象
nr=driver.find_element_by_id('nr')
obj=Select(webelement=nr)
time.sleep(3)

obj.select_by_value('Java')

time.sleep(3)
driver.quit()

下拉款实战
import time

from selenium import webdriver
import time as t
driver=webdriver.Chrome()
driver.maximize_window()
driver.get('https://www.lagou.com/')
time.sleep(3)
driver.find_element_by_id('search_input').send_keys('高级测试')
time.sleep(3)
driver.find_element_by_id('search_button').click()
time.sleep(5)
driver.find_element_by_xpath('/html/body/div[1]/div[1]/div/div[2]/div[1]/div[1]/div[2]/div/ul/li[4]').click()
time.sleep(5)
driver.find_element_by_xpath('/html/body/div[1]/div[1]/div/div[2]/div[1]/div[1]/div[2]/div/ul/li[4]/div/div/ul[2]/li[3]/span').click()
time.sleep(5)
driver.find_element_by_xpath('/html/body/div[1]/div[1]/div/div[2]/div[1]/div[1]/div[2]/div/ul/li[5]/div/span').click()
time.sleep(3)
driver.find_element_by_xpath('/html/body/div[1]/div[1]/div/div[2]/div[1]/div[1]/div[2]/div/ul/li[5]/div/div/ul[2]/li[4]/span').click()
time.sleep(5)
driver.quit()


alert学习



text:获取弹出框的文本信息

accept是接受Confirm弹出框

dismiss是拒绝接受Confirm弹出框

send_keys是在Prompt消息对话框里面输入想要输入的内容


 

 
rom  selenium import webdriver
import time
'''确定取消的按钮'''
# 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/%E7%A1%AE%E5%AE%9A%E6%B6%88%E6%81%AF.html')
# time.sleep(3)
# driver.find_element_by_tag_name('input').click()
# time.sleep(3)
# # 点击确定
# driver.switch_to.alert.accept()
# time.sleep(3)
#
# #页面刷新
# driver.refresh()
#
# driver.find_element_by_tag_name('input').click()
# time.sleep(5)
# driver.switch_to.alert.dismiss()
# time.sleep(5)
# driver.quit()




'''获取警告框文本信息'''
# 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/%E8%AD%A6%E5%91%8A%E6%A1%86.html')
# time.sleep(3)
# print(driver.switch_to.alert.text)
# time.sleep(3)
# driver.quit()



'''获取警告的文本信息'''
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/%E6%B6%88%E6%81%AF%E5%AF%B9%E8%AF%9D%E6%A1%86.html')
time.sleep(3)
driver.find_element_by_tag_name('input').click()
time.sleep(3)
# 输入内容
driver.switch_to.alert.send_keys('WEB自动化测试')
time.sleep(3)
driver.switch_to.alert.accept()
time.sleep(3)
driver.refresh()
driver.find_element_by_tag_name('input').click()
time.sleep(3)
driver.switch_to.alert.send_keys('WEB自动化测试')
time.sleep(3)
driver.switch_to.alert.dismiss()
time.sleep(3)
driver.quit()

iFrame定位


遇到iFrame框架,解决问题的思路是


1、先进入到iframe的框架


2、然后再定位框架里面的元素属性


怎么判断?


当你使用了所有元素定位的方式并且都是正确的,但是就是提升找不到。那么这个查看源码是否存在iFrame的框架。如果存在,通过三种方式可以进入到iFrame的框架:


1、通过ID


2、通过索引


3、通过name(基本不用)



from selenium import webdriver
import time as t

# id

# driver=webdriver.Chrome()
# driver.maximize_window()
# driver.get('https://file.qq.com/')
# t.sleep(6)
# # 进入第一层的iframe
# driver.switch_to.frame('login_frame1')
# t.sleep(3)
# # 进入第二次的iframe
# driver.switch_to.frame('ptlogin_iframe')
# t.sleep(3)
# driver.find_element_by_xpath('/html/body/div[1]/div[9]/a[1]').click()
# t.sleep(3)
# driver.find_element_by_xpath('//*[@id="u"]').send_keys('9864@qq.com')
# t.sleep(3)
# driver.quit()


# 索引

# driver=webdriver.Chrome()
# driver.maximize_window()
# driver.get('https://file.qq.com/')
# t.sleep(6)
# # 进入第一层的iframe
# driver.switch_to.frame(0)
# t.sleep(3)
# # 进入第二次的iframe
# driver.switch_to.frame(0)
# t.sleep(3)
# driver.find_element_by_xpath('/html/body/div[1]/div[9]/a[1]').click()
# t.sleep(3)
# driver.find_element_by_xpath('//*[@id="u"]').send_keys('9864@qq.com')
# t.sleep(3)
# driver.quit()


# name

# driver=webdriver.Chrome()
# driver.maximize_window()
# driver.get('https://file.qq.com/')
# t.sleep(6)
# # 进入第一层的iframe
# driver.switch_to.frame('login_frame')
# t.sleep(3)
# # 进入第二次的iframe
# driver.switch_to.frame('ptlogin_iframe')
# t.sleep(3)
# driver.find_element_by_xpath('/html/body/div[1]/div[9]/a[1]').click()
# t.sleep(3)
# driver.find_element_by_xpath('//*[@id="u"]').send_keys('9864@qq.com')
# t.sleep(3)
# driver.quit()


鼠标事件
from selenium import webdriver
from selenium.webdriver.common.action_chains import ActionChains
import time as t
# driver=webdriver.Chrome()
# driver.maximize_window()
# driver.get('https://www.baidu.com/')
#
# # 鼠标事件进行实例化
# obj=ActionChains(driver=driver)
# # 要定位的元素属性的对象
# setting=driver.find_element_by_xpath('/html/body/div[1]/div[1]/div[4]/span')
# obj.move_to_element(setting).perform()
# t.sleep(6)
# # 点击搜索设置
# driver.find_element_by_xpath('/html/body/div[1]/div[1]/div[4]/div[1]/div/a[1]/span').click()
# t.sleep(5)
# driver.quit()




'''右键的操作'''
# driver=webdriver.Chrome()
# driver.maximize_window()
# driver.get('https://www.baidu.com/')
# # 鼠标事件进行实例化
# obj=ActionChains(driver=driver)
# so=driver.find_element_by_id('kw')
# obj.context_click(so).perform()
# t.sleep(5)
# driver.quit()



'''双击操作'''

driver=webdriver.Chrome()
driver.maximize_window()
driver.get('https://www.baidu.com/')
# 鼠标事件进行实例化
obj=ActionChains(driver=driver)
t.sleep(3)
driver.find_element_by_id('kw').send_keys('段舒元')
t.sleep(3)
soButton=driver.find_element_by_id('su')
obj.double_click(soButton).perform()
t.sleep(5)
driver.quit()
 
 
posted @ 2022-04-07 19:01  段舒元  阅读(54)  评论(0编辑  收藏  举报