ui自动化测试——selenium的基本使用及定位方法
-基本使用-
1、打开窗口
(1)dx,.get 打开网站
# from selenium import webdriver #导入selenium模块中的webdriver
# import time
# dx=webdriver.Chrome() #创建一个驱动谷歌浏览器的对象
# dx.get("http://49.233.201.254:8080/cms/manage/login.do") #通过get打开页面
(2)重开窗口打开页面
# from selenium import webdriver #导入selenium模块中的webdriver
# import time
# dx=webdriver.Chrome() #创建一个驱动谷歌浏览器的对象
# dx.get("http://49.233.201.254:8080/cms/manage/login.do") #通过get打开页面
# time.sleep(2)
# dx.get("https://www.baidu.com") #打开网页页面
# time.sleep(2)
# w="window.open('https://www.baidu.com')"
# dx.execute_script(w) #重开窗口打开页面
2、时间等待
time.sleep(2) #强制等待
# dx.implicitly_wait(10) #隐式等待,最长等待10秒,上一页页面运行完后跳转
# # WebDriverWait #显示等待
3、页面刷新
# from selenium import webdriver #导入selenium模块中的webdriver
# import time
# dx=webdriver.Chrome() #创建一个驱动谷歌浏览器的对象
# dx.get("http://49.233.201.254:8080/cms/manage/login.do") #通过get打开页面
# time.sleep(2)
# dx.refresh() #页面刷新
4、返回上一页,切换到下一页
# from selenium import webdriver #导入selenium模块中的webdriver
# import time
# dx=webdriver.Chrome() #创建一个驱动谷歌浏览器的对象
# dx.get("http://49.233.201.254:8080/cms/manage/login.do") #通过get打开页面
# time.sleep(2)
# dx.get("https://www.baidu.com")
# time.sleep(2)
# dx.back() #切换到上一页
# time.sleep(2)
# dx.forward() #切换到下一页
5、设置窗口
(1)窗口最大化
# from selenium import webdriver #导入selenium模块中的webdriver
# import time
# dx=webdriver.Chrome() #创建一个驱动谷歌浏览器的对象
# dx.get("http://49.233.201.254:8080/cms/manage/login.do") #通过get打开页面
# dx.maximize_window() #窗口最大化
# time.sleep(2)
# dx.set_window_size(1920,1080) #设置窗口大小
(2)设置窗口大小
6、截图
# from selenium import webdriver #导入selenium模块中的webdriver
# import time
# dx=webdriver.Chrome() #创建一个驱动谷歌浏览器的对象
# dx.get("http://49.233.201.254:8080/cms/manage/login.do") #通过get打开页面
# dx.get_screenshot_as_file(r"E:\1\aaa.png") #截图
7、quit 退出所有窗口 ,close关闭当前窗口
(1)close
# from selenium import webdriver #导入selenium模块中的webdriver
# import time
# dx=webdriver.Chrome() #创建一个驱动谷歌浏览器的对象
# dx.get("http://49.233.201.254:8080/cms/manage/login.do") #通过get打开页面
# time.sleep(2)
# w="window.open('https://www.baidu.com')"
# dx.execute_script(w)
# time.sleep(2)
# # dx.close() #关闭当前页面
# dx.quit() #关闭所有页面
(2)关闭所有页面
一、selenium中的定位9种方法

1、name定位
from selenium import webdriver #导入selenium模块中的webdriver
import time
dx=webdriver.Chrome() #创建一个驱动谷歌浏览器的对象
dx.get("https://www.baidu.com") #通过get打开页面
dx.find_element_by_name("wd").send_keys("name定位")
2、id定位
from selenium import webdriver #导入selenium模块中的webdriver
import time
dx=webdriver.Chrome() #创建一个驱动谷歌浏览器的对象
dx.get("https://www.baidu.com") #通过get打开页面
dx.find_element_by_id("kw").send_keys("id定位")
3、class定位
from selenium import webdriver #导入selenium模块中的webdriver
import time
dx=webdriver.Chrome() #创建一个驱动谷歌浏览器的对象
dx.get("https://www.baidu.com") #通过get打开页面
dx.find_element_by_class_name("s_ipt").send_keys("class定位")
4、link定位
from selenium import webdriver #导入selenium模块中的webdriver
import time
dx=webdriver.Chrome() #创建一个驱动谷歌浏览器的对象
dx.get("https://www.baidu.com") #通过get打开页面
dx.find_element_by_link_text("hao123").click()
5、partial_link_text() 模糊文本值
from selenium import webdriver #导入selenium模块中的webdriver
import time
dx=webdriver.Chrome() #创建一个驱动谷歌浏览器的对象
dx.get("https://www.baidu.com") #通过get打开页面
dx.find_element_by_partial_link_text("hao").click()
6、xpath定位
from selenium import webdriver #导入selenium模块中的webdriver
import time
dx=webdriver.Chrome() #创建一个驱动谷歌浏览器的对象
dx.get("https://www.baidu.com") #通过get打开页面
dx.find_element_by_xpath('//*[@id="kw"]').send_keys("xpath定位")
7、css定位
from selenium import webdriver #导入selenium模块中的webdriver
import time
dx=webdriver.Chrome() #创建一个驱动谷歌浏览器的对象
dx.get("https://www.baidu.com") #通过get打开页面
dx.find_element_by_css_selector("#kw").send_keys("css定位")
8、tag_name 方法:就是元素属性
from selenium import webdriver #导入selenium模块中的webdriver
import time
dx=webdriver.Chrome() #创建一个驱动谷歌浏览器的对象
dx.get("https://www.baidu.com") #通过get打开页面
inputs=dx.find_elements_by_tag_name("input") #找到标签input
for i in inputs:
if i.get_attribute("name")=="wd":
i.send_keys("tag_name定位方法")
9、js定位
from selenium import webdriver #导入selenium模块中的webdriver
import time
dx=webdriver.Chrome() #创建一个驱动谷歌浏览器的对象
dx.get("https://www.baidu.com") #通过get打开页面
js='document.getElementById("kw").value="js定位"'
dx.execute_script(js)
二、xpath 定位
格式:dx.find_element_by_xpath(xpath表达式)
两个定位:
1、绝对定位:
特点:
1.以单斜杠/开头;
2.从页面根元素(HTML标签)开始,严格按照元素在HTML页面中的位置和顺序向下查找
右键copy full path复制
如:/html/body/div[2]/div[1]/div[5]/div/div/form/span[1]/input
2、相对定位:(我们一般都是用相对定位来定位的)
特点:
1.以双斜杠//开头;
2.不考虑元素在页面当中的绝对路径和位置;
3.只考虑是否存在符合表达式的元素即可。
2.1使用标签名+节点属性定位
//*[@id="kw"]语法://标签名[@属性名=属性值]

案例:
from selenium import webdriver #导入selenium模块中的webdriver
import time
dx=webdriver.Chrome() #创建一个驱动谷歌浏览器的对象
dx.get("https://www.baidu.com") #通过get打开页面
time.sleep(2)
dx.find_element_by_xpath('//*[@id="kw"]').send_keys("xpath中的id定位")
dx.find_element_by_xpath('//*[@name="wd"]').send_keys("xpath中的name定位")
dx.find_element_by_xpath('//*[@class="s_ipt"]').send_keys("xpath中的class定位")
dx.find_element_by_xpath('//*[@autocomplete="off"]').send_keys("xpath中的其他属性定位")
dx.find_element_by_xpath('//*[@autocomplete="off" and @name="wd"]').send_keys("xpath中的组合属性定位")
dx.find_element_by_xpath('//input[@name="wd"]').send_keys("xpath中的标签定位")
dx.find_element_by_xpath('//*[@id="form"]/span[1]/input[1]').send_keys("path中层级定位")
三、css定位
from selenium import webdriver #导入selenium模块中的webdriver
import time
dx=webdriver.Chrome() #创建一个驱动谷歌浏览器的对象
dx.get("https://www.baidu.com") #通过get打开页面
time.sleep(2)
dx.find_element_by_css_selector("#kw").send_keys("css中id简写方法")
dx.find_element_by_css_selector("[id='kw']").send_keys("css中id全称方法")
dx.find_element_by_css_selector("[name='wd']").send_keys("css中name全称方法")
dx.find_element_by_css_selector("[class='s_ipt']").send_keys("css中class全称方法")
dx.find_element_by_css_selector(".s_ipt").send_keys("css中class简写方法")
dx.find_element_by_css_selector("[autocomplete='off']").send_keys("css中其他属性方法")
dx.find_element_by_css_selector("[autocomplete='off'][class='s_ipt']").send_keys("css中组合属性方法")
dx.find_element_by_css_selector("#form > span.bg.s_ipt_wr.new-pmd.quickdelete-wrap>input").send_keys("css中层级父级方法")
dx.find_element_by_css_selector("#form>span>input").send_keys("css中层级爷爷级方法")

浙公网安备 33010602011771号