自动化测试(定位元素的方式,浏览器操作)

本文详细介绍了使用Selenium进行自动化测试中,定位元素的各种方式(如ID、名称、类名等)、浏览器操作技巧(最大化、尺寸调整、前进后退、滚动、键盘与鼠标事件)、多层框架定位、下拉框处理、alert对话框管理以及div和文件上传操作。涵盖了从基础到进阶的自动化测试实践案例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.定位元素的方式

id,name,class name,link text,partial lin text,tag name,xpath,css selector

from selenium import webdriver
import time

driver = webdriver.Chrome()
driver.get("https://www.baidu.com/")
# 通过元素id(全局唯一)定位元素,然后对元素进行操作
# class name有可能不唯一,id全局唯一
# driver.find_element_by_id("kw").send_keys("杨舒予")
# driver.find_element_by_name("wd").send_keys("杨舒予")
# driver.find_element_by_class_name("s_ipt").send_keys("杨舒予")
# driver.find_element_by_id("su").click()
# link text定位
# driver.find_element_by_link_text("视频").click()
# partial_link_text部分内容
# driver.find_element_by_partial_link_text("视").click(
# tag name,不是唯一的
# driver.find_element_by_tag_name("input").send_keys("焦迈奇")
# driver.find_element_by_tag_name("input").click()
# xpath
# driver.find_element_by_xpath("//*[@id='kw']").send_keys("沈以诚")
# driver.find_element_by_xpath("//*[@id='su']").click()
#css selector
driver.find_element_by_css_selector("#kw").send_keys("花瓣")
driver.find_element_by_css_selector("#su").click()
time.sleep(8)
# 关闭驱动
driver.quit()

2.浏览器操作

2.1浏览器最大化

driver.maximize_window()

2.2浏览器高宽

driver.set_window_size(100,100)

2.3浏览器前进后退

 driver.back() 
 driver.forward()

2.4浏览器滚动

js1 = "var q=document.documentElement.scrollTop=10000"
driver.execute_script(js1)

2.5键盘按键

#先导包
from selenium.webdriver.common.keys import Keys

2.6键盘组合键

from selenium import webdriver
import time
from selenium.webdriver.common.keys import Keys
driver = webdriver.Chrome()
driver.get("https://www.baidu.com/")
driver.maximize_window()
driver.find_element_by_id("kw").send_keys("杨舒予")
driver.find_element_by_id("su").submit()
time.sleep(3)
#全选
driver.find_element_by_id("kw").send_keys(Keys.CONTROL,'a')
#剪贴
driver.find_element_by_id("kw").send_keys(Keys.CONTROL,'x')
time.sleep(3)
driver.find_element_by_id("kw").send_keys("杨洋")
driver.find_element_by_id("su").submit()
time.sleep(5)
driver.quit()

2.7鼠标事件双击,右击

from selenium import webdriver
import time
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.common.action_chains import ActionChains
driver = webdriver.Chrome()
driver.get("https://www.baidu.com/")
driver.maximize_window()
driver.find_element_by_id("kw").send_keys("杨舒予")
driver.find_element_by_id("su").submit()
time.sleep(3)
#右击百度一下按钮
loacte=driver.find_element_by_id("su")
ActionChains(driver).context_click(loacte).perform()
time.sleep(3)
driver.find_element_by_id("kw").clear()
#双击百度一下按钮

driver.find_element_by_id("kw").send_keys("123")
btn=driver.find_element_by_id("su")
ActionChains(driver).double_click(btn).perform()
time.sleep(3)
driver.quit() 

2.8定位一组元素

from selenium import webdriver
import time
import os

driver = webdriver.Chrome()
url = "file:///" + os.path.abspath("E:/路径/一.html")
driver.get(url)
time.sleep(3)
# driver.find_element_by_id("c1").click()
# driver.find_element_by_id("c2").click()
# driver.find_element_by_id("c3").click()
# driver.find_element_by_id("c4").click()
inputs=driver.find_elements_by_tag_name("input")
for input in inputs:
    if input.get_attribute('type')=="checkbox":
        input.click()
time.sleep(3)




driver.quit()

2.9多层框架的定位

from selenium import webdriver
import time
import os

driver = webdriver.Chrome()
url = "file:///" + os.path.abspath("E:/路径/frame.html")
driver.get(url)
driver.maximize_window()
driver.switch_to.frame("f1")
driver.find_element_by_link_text("click").click()

time.sleep(3)

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

2.10层级定位

from selenium import webdriver
import time
import os
from selenium.webdriver.common.action_chains import ActionChains
driver = webdriver.Firefox()
url = "file:///" + os.path.abspath("E:/路径/level_locate.html")
driver.get(url)
driver.maximize_window()
time.sleep(3)
driver.find_element_by_link_text("Link1").click()
time.sleep(3)
btn=driver.find_element_by_link_text("Another action")
ActionChains(driver).move_to_element(btn).perform()
time.sleep(6)
driver.quit()

2.11下拉框处理

from selenium import webdriver
import time
import os
from selenium.webdriver.common.action_chains import ActionChains
driver = webdriver.Chrome()
url = "file:///" + os.path.abspath("E:/啊大学学习/大三课程/上课笔记/测试/selenium2html/drop_down.html")
driver.get(url)
driver.maximize_window()
time.sleep(3)

#tag name
options=driver.find_elements_by_tag_name("option")
# for option in options:
#     if option.get_attribute('value')=="10.69":
#         option.click()

# #css selector
# driver.find_element_by_css_selector("#ShippingMethod > option:nth-child(3)").click()

#数组的方式定位
options[2].click()


time.sleep(6)
driver.quit()

2.12alert处理

from selenium import webdriver
import time
import os
from selenium.webdriver.common.action_chains import ActionChains
driver = webdriver.Chrome()
url = "file:///" + os.path.abspath("E:/路径/alert.html")
driver.get(url)
driver.maximize_window()
time.sleep(3)
driver.find_element_by_id("tooltip").click()
time.sleep(3)
#获取弹出框
alert=driver.switch_to.alert

#关闭弹出框
alert.accept()
time.sleep(3)
driver.quit()
from selenium import webdriver
import time
import os
from selenium.webdriver.common.action_chains import ActionChains
driver = webdriver.Chrome()
url = "file:///" + os.path.abspath("E:/路径/send.html")
driver.get(url)
driver.maximize_window()
time.sleep(3)
driver.find_element_by_tag_name("input").click()
time.sleep(3)
#获取弹出框
alert=driver.switch_to.alert
alert.send_keys("杨赛")
time.sleep(3)
#关闭弹出框
alert.accept()
time.sleep(3)
driver.quit()

2.13div定位

from selenium import webdriver
import time
import os 
driver = webdriver.Chrome()
url = "file:///" + os.path.abspath("E:/路径/modal.html")
driver.get(url)
driver.maximize_window()
time.sleep(3)
driver.find_element_by_id("show_modal").click()
time.sleep(3)
driver.find_element_by_id("click").click()
time.sleep(3)
# 定位div
div=driver.find_element_by_class_name("modal-footer")
#在定位一族元素
buttons=div.find_elements_by_tag_name("button")
#点击close
buttons[0].click()
time.sleep(3)
driver.quit()

2.14上传文件

from selenium import webdriver
import time
import os
driver = webdriver.Chrome()
url = "file:///" + os.path.abspath("E:/路径/upload.html")
driver.get(url)
driver.maximize_window()
#上传文件
driver.find_element_by_tag_name("input").send_keys("E:\\路径\\1.png")

time.sleep(3)
driver.quit()
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值