UI自动化测试4.7


元素属性

# 是否勾选is_selected()
from selenium import webdriver
import time

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(3)
obj.click()
time.sleep(4)
print(obj.is_selected())
driver.quit()

# is_displayed()确认是否隐藏
from selenium import webdriver
import time
driver=webdriver.Chrome()
driver.maximize_window()
driver.get('https://www.baidu.com/')
# about=driver.find_element_by_xpath('//*[@id="bottom_layer"]/div/p[1]/a')
about=driver.find_element_by_link_text('关于百度')
print(about.is_displayed())
driver.quit()

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

 alert学习

弹出框交互

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

accept是接受Confirm弹出框

dismiss是拒绝接受Confirm弹出框

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





Title


# 实现测试页面的html代码如上
# 弹出框里面确定取消按钮
from selenium import webdriver
import time
driver=webdriver.Chrome()
driver.maximize_window()
driver.get('file:///D:/CODE/TESTDEV1/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(5)
driver.find_element_by_tag_name('input').click()
time.sleep(5)
# 点击确定按钮
driver.switch_to.alert.accept()
time.sleep(5)
driver.refresh()
time.sleep(5)
driver.find_element_by_tag_name('input').click()
time.sleep(5)
# 点击取消按钮
driver.switch_to.alert.dismiss()
time.sleep(5)
driver.quit()





Title




# 实现测试页面的html代码如上
from selenium import webdriver
import time
driver=webdriver.Chrome()
driver.maximize_window()
driver.get('file:///D:/CODE/TESTDEV1/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(5)
# 获取警告框里面的文本信息
print(driver.switch_to.alert.text)
driver.quit()





Title







# 实现测试页面的html代码如上
# 消息对话框
from selenium import webdriver
import time
driver=webdriver.Chrome()
driver.maximize_window()
driver.get('file:///D:/CODE/TESTDEV1/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(5)
driver.find_element_by_tag_name('input').click()
time.sleep(5)
driver.switch_to.alert.send_keys('xiaoming')
time.sleep(5)
driver.switch_to.alert.accept()
time.sleep(5)
driver.refresh()
driver.find_element_by_tag_name('input').click()
time.sleep(5)
driver.switch_to.alert.send_keys('xiaoming')
time.sleep(5)
driver.switch_to.alert.dismiss()
time.sleep(5)
driver.quit()

下拉框:

下拉框操作步骤:

1、先导入Select类

2、首先对Select类进行实例化

3、定位到下拉框的元素属性

4、使用Select类进行实例化的对象调用该类里面的方法





Title



喜欢的编程语言:



# 实现测试页面的html代码如上
# 下拉框
from selenium.webdriver.support.select import Select
from selenium import webdriver
import time
driver=webdriver.Chrome()
driver.maximize_window()
driver.get('file:///D:/CODE/TESTDEV1/WEB%E8%87%AA%E5%8A%A8%E5%8C%96%E6%B5%8B%E8%AF%95/index(1).html')
nr=driver.find_element_by_id('nr')
# Select进行实例化 webelement下拉框的元素属性
obj=Select(webelement=nr)
time.sleep(5)
# 通过检索的方式
# obj.select_by_index(3)
# 通过value方式
obj.select_by_value('Java')
time.sleep(5)
# 通过文本的方式
obj.select_by_visible_text('Go语言')
time.sleep(5)
driver.quit()

iFrame定位:

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

1、先进入到iframe的框架

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

怎么判断是在iFrame框架里?

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

1、通过ID

2、通过索引

3、通过name(基本不使用这个)

from selenium import webdriver
import time
driver=webdriver.Chrome()
driver.maximize_window()
driver.get('https://file.qq.com/')
time.sleep(6)
# 进入第一层的iframe
driver.switch_to.frame('login_frame1')
time.sleep(5)
# 进入第二层的iframe
driver.switch_to.frame('ptlogin_iframe')
time.sleep(5)
driver.find_element_by_id('switcher_plogin').click()
driver.find_element_by_id('u').send_keys('1721219991@qq.com')
time.sleep(5)
driver.quit()
# 鼠标事件
from selenium import webdriver
import time
from selenium.webdriver.common.action_chains import ActionChains
driver=webdriver.Chrome()
driver.maximize_window()
driver.get('https://www.baidu.com/')
#鼠标事件进行实例化
obj=ActionChains(driver=driver)
setting=driver.find_element_by_xpath('//*[@id="s-usersetting-top"]')
# 悬浮框操作
obj.move_to_element(setting).perform()
time.sleep(6)
driver.find_element_by_xpath('//*[@id="s-user-setting-menu"]/div/a[1]/span').click()
time.sleep(5)
driver.quit()

# 右键操作
from selenium import webdriver
from selenium.webdriver.common.action_chains import ActionChains
import time
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()
time.sleep(5)
driver.quit()

# 双击操作
from selenium import webdriver
from selenium.webdriver.common.action_chains import ActionChains
import time
driver=webdriver.Chrome()
driver.maximize_window()
driver.get('https://www.baidu.com/')
obj=ActionChains(driver=driver)
time.sleep(5)
driver.find_element_by_id('kw').send_keys('接口测试')
time.sleep(5)
so=driver.find_element_by_id('su')
# 双击操作
obj.double_click(so).perform()
time.sleep(5)
driver.quit()

不标准的下拉框实战:

# 下拉框实战
from selenium import webdriver
import time
driver=webdriver.Chrome()
driver.maximize_window()
driver.get('https://www.lagou.com/')
driver.find_element_by_id('search_input').send_keys('接口测试')
time.sleep(5)
driver.find_element_by_id('search_button').click()
time.sleep(3)
driver.find_element_by_xpath('//*[@id="jobsContainer"]/div[2]/div[1]/div[1]/div[2]/div/ul/li[4]/div/span').click()
time.sleep(5)
driver.find_element_by_id('//*[@id="jobsContainer"]/div[2]/div[1]/div[1]/div[2]/div/ul/li[4]/div/div/ul[2]/li[1]/span').click()
time.sleep(5)
driver.quit()

相关