一些自动化测试02

一、CSS定位

速度快

find_element_by_css_selector(css_selector)  #css_selector表示是css选择器表达式

1. id选择器

 # id 通过元素id属性进行元素选择  

 2. class选择器

.class # 表示通过元素的class属性进行元素选择

driver.find_element_by_css_selector("#pass").send_keys("admin")
driver.find_element_by_css_selector(".dzyxA").send_keys("admin")

3. 层级选择器

1) 元素父子关系

element1>element2    # 直接子元素

p[id='p1']>input

 2)隔代层级

element1 element2     # element2是element1的后代

div #passwordA

 二、CSS拓展

1. 以字符为开头的元素

标签名[属性名称^='匹配内容']      input[type^='p']     

^:以...开头

 2. 以字符结束的元素

标签名[属性名称$='匹配内容']      input[type$='d']   

$:以...结尾

 3. 文本内容

标签名[属性名称*='匹配内容']      input[typalue']   

*:包含value元素

三、总结

四、元素操作

1. 点击操作    element.click()

2.  输入操作     element.send_keys("value")

3.  清除操作     element.clear()  输入框中的内容全部清除

driver.find_element(By.ID, "j_password").clear()

五、浏览器操作

1. 窗口操作

# 窗口最大化
driver.maximize_window()

# 窗口大小
driver.set_window_size(500, 500)


# 窗口位置
driver.set_window_position(500, 500)

import time

from selenium import webdriver
driver = webdriver.Chrome() # 谷歌浏览器驱动
driver.get('https://www.baidu.com/')
# 窗口最大化
driver.maximize_window()
time.sleep(3)
# 窗口大小
driver.set_window_size(500, 500)
time.sleep(3)
# 窗口位置
driver.set_window_position(500, 500)

time.sleep(3)
driver.quit()    # 退出浏览器

2. 页面操作

driver.back()  #返回先前页面

driver.forward() # 前进

driver.refresh()  # 刷新

driver.close() # 关闭当前页面

driver.quit()  # 浏览器关闭

print(driver.title)  # 获取页面title

print(driver.current_url)  #获取浏览器地址

# 获取用户名输入框大小
print(driver.find_element(By.ID, "j_username").size)

# 获取页面上第一个超链接文本
print(driver.find_element(By.LINK_TEXT,"新浪").text)

# 获取第一个页面超链接地址
print(driver.find_element(By.LINK_TEXT, "新浪").get_attribute("herf"))

3. 显示操作

is_displayed()     #判断元素是否可见

is_enabled()       #判断元素是否可用(置灰)

is_selected()      # 判断元素是否选中(复选框)

# is_displayed()     #判断元素是否可见
print("spam标签是否可见,默认为false", driver.find_element(By.ID,"value").is_displayed())

# is_enabled()       #判断元素是否可用(置灰)
print("按钮是否可用,默认为false", driver.find_element(By.ID,"value").is_enabled())

# is_selected()      # 判断元素是否选中(复选框)
print("复选框是否选中", driver.find_element(By.ID,"value").is_selected())

 六、鼠标操作

实例化对象:

action = ActionChains(driver)    # driver表示浏览器驱动

调用方法:

action.context_click(driver.find_element(By.ID,"value"))
action.double_click(element)
action.drag_and_drop(source, target)

执行调用方法:

action.perform()

python快捷导包:Alt+Enter

1. 鼠标右击操作

# 创建对象
action = ActionChains(driver)
# 调用鼠标对象
action.context_click(driver.find_element(By.ID,"pass"))
# 调用鼠标双击方法
action.perform()

2. 鼠标双击操作

# 创建对象
action = ActionChains(driver)
element = driver.find_element(By.ID,"pass")
element.send_keys("admin")
# 调用鼠标双击方法
action.double_click(element)
# 调用鼠标对象
action.perform()

3. 鼠标拖拽

source = driver.find_element(By.ID,"div1")
target = driver.find_element(By.ID,"div2")
element.send_keys("admin")
# 创建对象
action = ActionChains(driver)
# 拖拽
action.drag_and_drop(source, target)
# 调用鼠标对象
action.perform()

 4. 鼠标悬停

element = driver.find_element(By.CSS_SELECTOR, "button") #第一个button
# 创建对象
action = ActionChains(driver)
# 悬停
action.move_to_element(element)
# 调用鼠标对象
action.perform()

5. 鼠标拖拽单元素

element = driver.find_element(By.CSS_SELECTOR, 'value')
action.drag_and_drop_by_offset(element, 265, 0)

七、键盘操作(模拟快捷键)

send_keys(keys.Back_SPACE)           删除键

send_keys(key.SPACE)                       空格键

send_keys(keys.TAB)                          制表键

send_keys(keys.ESCAPE)                  回退键

send_keys(keys.ENTER)                    回车键

send_keys(keys.CONTROL, 'a')              全选

send_keys(keys.CONTROL, 'c')              复制

element = driver.find_element(By.ID, 'pass')
element.send_keys("123")
time.sleep(3)
element.send_keys(keys.BACK_SPACE) # 这条有错
time.sleep(3)

报错:module 'selenium.webdriver.common.keys' has no attribute 'BACK_SPACE'

解决:element.send_keys(Keys.BACK_SPACE) 大写并导包

from selenium.webdriver import Keys

猜你喜欢

转载自blog.csdn.net/Kiraxqc/article/details/126261416