一.selenium自动化测试---测试工具
1.定位By ID driver.findElement(By.id(<element ID>)) 定位元素使用ID属性 By name driver.findElement(By.name(<element name>)) 定位使用Name属性的元素 By class name driver.findElement(By.className(<element class>)) 定位使用类属性的元素 By tag name driver.findElement(By.tagName(<htmltagname>)) 定位使用HTML标记元素 By link text driver.findElement(By.linkText(<linktext>)) 定位使用的链接文字链接 By partial link text driver.findElement(By.partialLinkText(<linktext>)) 定位链接使用链接的文字部分 By CSS driver.findElement(By.cssSelector(<css selector>)) 定位使用CSS选择器的元素 By XPath //更多请阅读:https://www.yiibai.com/selenium/selenium_locators.html
2.基本操作 (1)下拉框
select=Select(driver.find_element(By.ID,'utype'))
select.select_by_visible_text('教工')
(2)滚动条
driver.execute_script('window.scrollTo(0,400)')
(3)ActionChains进行点击(鼠标)操作
如:A=driver.find_element(By.ID,"input_username")
# 鼠标双击
sleep(2)
ActionChains(driver).double_click(A).perform()
(4)键盘操作
如:
# 复制
driver.find_element(By.ID,'input_username').send_keys(Keys.CONTROL,'a')
sleep(1)
# 剪切
driver.find_element(By.ID,'input_username').send_keys(Keys.CONTROL,'x')
sleep(2)
# 粘贴
driver.find_element(By.ID,'input_password').send_keys(Keys.CONTROL,'v')
5.(窗口)
# 切换窗口 0,1,2,,3,4......
# driver.switch_to.window(driver.window_handles[1])
# 删除窗口
# driver.execute_script("arguments[0].removeAttribute('target')",定位)
6.截图
# 截图
driver.get_screenshot_as_file(r"E:\jietu.png")
二.unittest测试框架
1.方法(set up:测试执行前 teardown:测试执行之后 setupclass:每一个测试集执行前执行 teardownclass:每一个测试集执行后执行)
2.框架(1)setUp/tearDown
import unittest
from selenium import webdriver
from selenium.webdriver.chrome.options import Options
from selenium.webdriver.common.by import By
from selenium.webdriver.common.keys import Keys
from time import sleep
# unittest测试框架(set up:测试执行前 teardown:测试执行之后 setupclass:每一个测试集执行前执行 teardownclass:每一个测试集执行后执行)
class Denglu(unittest.TestCase):
def setUp(self):
self.driver = webdriver.Chrome()
self.driver.implicitly_wait(5) #等待5秒,5秒内发现即可
def tearDown(self):
self.driver.close()
# 测试框架1
def test_denglu01(self):
self.driver.get('http://www.baidu.com')
self.driver.find_element(By.ID, 'kw').send_keys('python')
self.driver.find_element(By.ID, 'su').click()
sleep(5)
# 测试框架2
def test_denglu02(self):
self.driver.get('http://www.baidu.com')
self.driver.find_element(By.ID, 'kw').send_keys('python')
self.driver.find_element(By.ID, 'su').click()
self.driver.find_element(By.PARTIAL_LINK_TEXT, 'Welcome to Python.org').click()
sleep(15)
print("002")
if __name__ == '__main__': # 执行框架
unittest.main()
2.框架(2):setUpClass/tearDownClass
import unittest
from selenium import webdriver
from selenium.webdriver.chrome.options import Options
from selenium.webdriver.common.by import By
from selenium.webdriver.common.keys import Keys
from time import sleep
class Denglu(unittest.TestCase):
@classmethod
def setUpClass(cls):
cls.driver = webdriver.Chrome()
cls.driver.implicitly_wait(5) # 执行每一个测试用例等待5秒
@classmethod
def tearDownClass(cls):
cls.driver.close()
def test_denglu01(self):
self.driver.get('http://www.baidu.com')
print('测试用例1')
def test_denglu02(self):
print('测试用例2')
if __name__ == '__main__':
unittest.main()
标签:driver,self,selenium,find,import,ID,软件测试 From: https://www.cnblogs.com/zhangminhao/p/16880592.html