已写过,地址是:搭建Selenium自动化环境
import time
from selenium import webdriver
# 打开浏览器
driver = webdriver.Chrome()
# 在浏览器打开被测项目地址
driver.get('http://www.baidu.com')
# 窗口最大化
driver.maximize_window()
# 窗口最小化
driver.minimize_window()
# 设置宽高
driver.set_window_size(600, 600)
# 回退
driver.back()
# 前进
driver.forward()
# 刷新
driver.refresh()
# 获得标题
print(driver.title)
# 获得当前路径
print(driver.current_url)
# 获得页面代码
print(driver.page_source)
# 截图
time.sleep(3)
driver.get_screenshot_as_file("F:\\11\\a.png")
# 关闭浏览器
driver.close()
(在百度地址实验)
1、通过id定位元素
driver.find_element_by_id('kw').send_keys("勒布朗詹姆斯")
2、Xpath元素定位
通过xpath绝对路径定位
driver.find_element_by_xpath('/html/body/div[1]/div[1]/div[5]/div/div/form/span[1]/input').send_keys("勒布朗詹姆斯")
通过xpath相对路径定位
driver.find_element_by_xpath('//form/span/input').send_keys("勒布朗詹姆斯")
通过属性定位(* * * * 四颗星)
driver.find_element_by_xpath('//input[@autocomplete="off"]').send_keys("勒布朗詹姆斯")
driver.find_element_by_xpath('//input[@autocomplete="off" and @id="kw"]').send_keys("勒布朗詹姆斯")
driver.find_element_by_xpath('//input[@autocomplete="off" or @id="kw"]').send_keys("勒布朗詹姆斯")
driver.find_element_by_xpath('//*[@*="off"]').send_keys("勒布朗詹姆斯")
通过部分属性定位
(开头首)
driver.find_element_by_xpath("//a[starts-with(@name, 'ti_trhao']").click()
(第5位开始到最大,包括第5位)
driver.find_element_by_xpath("//a[substring(@name,5)='rmap']").click()
(第5位开始到最大,包括第5位)
driver.find_element_by_xpath("//a[contains(@name,'trvide')]").click()
通过索引定位
(直接复制)
driver.find_element_by_xpath('//*[@id="kw"]').send_keys("勒布朗詹姆斯")
通过文本定位
driver.find_element_by_xpath("//a[text()='地图']").click()
driver.find_element_by_xpath('//a[contains(text(),"hao")]').click()
3、CSS元素定位
绝对路径
driver.find_element_by_css_selector('html body div div div div div form span input').send_keys("勒布朗詹姆斯")
driver.find_element_by_css_selector('html>body>div>div>div>div>div>form>span>input').send_keys("勒布朗詹姆斯")
css样式通过id(#)或者class(.)定位,并且可与标签名组合用
driver.find_element_by_css_selector("#kw").send_keys("勒布朗詹姆斯")
driver.find_element_by_css_selector('.s_ipt').send_keys("勒布朗詹姆斯")
driver.find_element_by_css_selector('input.s_ipt').send_keys("勒布朗詹姆斯")
css通过属性定位(* * * * 四颗星)
driver.find_element_by_css_selector('input[autocomplete="off"]').send_keys("勒布朗詹姆斯")
driver.find_element_by_css_selector('input[autocomplete="off"][id="kw"]').send_keys("勒布朗詹姆斯")
css通过部分属性定位(* * * 三颗星),可以解决动态元素定位不到的场景
( 开头)
driver.find_element_by_css_selector("input[autocomplete ^='of']").send_keys("勒布朗詹姆斯")
(结尾)
driver.find_element_by_css_selector("input[autocomplete $='ff']").send_keys("勒布朗詹姆斯")
(匹配全部字)
driver.find_element_by_css_selector("input[autocomplete *='of']").send_keys("勒布朗詹姆斯")
css通过子元素定位(类似于xpath中的索引方法)
(首)
driver.find_element_by_css_selector("div#ul a: first-child").click()
(尾)
driver.find_element_by_css_selector("div#ul a: last-child").click()
(下标为2)
driver.find_element_by_css_selector("div#ul a: nth-child(2)").click()
css通过查找兄弟元素
driver.find_element_by_css_selector("div#ul a+a+a").click()
a_list = driver.find_element_by_css_selector("div#ul a ~a")
for i in a_list:
print(i, i.text)
总结:定位元素的方式有8种,写法有2种
driver.find_element_by_id()
driver.find_element(By.ID, “”)
(By.NAME, “”)
(By.CLASS_NAME, “”)
(By.TAG_NAME, “”)
(By.LINK_TEXT, “”)
(By.PARTIAL_LINK_TEXT, “”)
(By.XPATH, “”)
(By.CSS_SELECTOR, “”)
感谢每一个认真阅读我文章的人!!!
如果下面这些资料用得到的话可以直接拿走:
1、自学开发或者测试必备的完整项目源码与环境
2、测试工作中所有模板(测试计划、测试用例、测试报告等)
3、软件测试经典面试题
4、Python/Java自动化测试实战.pdf
5、Jmeter/postman接口测试全套视频获取
我个人整理了我这几年软件测试生涯整理的一些技术资料,包含:电子书,简历模块,各种工作模板,面试宝典,自学项目等。如果在学习或工作中遇到问题可以直接点击此链接进群询问,群里也会有大神帮忙解答,也可以手动添加群号 743262921 备注222