1500字范文,内容丰富有趣,写作好帮手!
1500字范文 > 超全面整理 Selenium 八大元素定位方式 (建议收藏反复使用)

超全面整理 Selenium 八大元素定位方式 (建议收藏反复使用)

时间:2021-06-28 22:58:00

相关推荐

超全面整理 Selenium 八大元素定位方式 (建议收藏反复使用)

UI自动化测本质无非就是: 定位元素 -> 操作元素 -> 模拟页面动作 -> 断言结果 -> 生成测试报告。

所以我们做UI自动化的第一步就是定位元素,如果连元素都定位不到就更不必说接下来的操作。

本篇随笔便是关于Selenium八大元素定位方式,让你成功定位元素。

## find_element_by_id# -*- coding:utf-8 -*-from selenium import webdriverimport timedriver = webdriver.Chrome() # 实例化# demo01:# 打开云商网站driver.get("http://[服务器ip]/yuns/index.php")# 窗口最大化driver.maximize_window()time.sleep(2)# 点击我的购物车进行跳转driver.find_element_by_id('cart_num').click()time.sleep(2)# demo02:# 打开百度,搜索框中输入 软件测试,点击百度一下driver.get("")time.sleep(2)driver.find_element_by_id("kw").send_keys("软件测试")time.sleep(2)driver.find_element_by_id("su").click()time.sleep(3)driver.quit()

find_element_by_name

# -*- coding:utf-8 -*-from selenium import webdriverimport timedriver = webdriver.Chrome()driver.get('http://[服务器ip]/yuns/index.php')time.sleep(2)# demo01:# 搜索框中输入耐克# 只有可输入的控件才能使用send_keys()方法,比如input控件。driver.find_element_by_name('key').send_keys('耐克')time.sleep(2)# demo02:# 清空搜索框中的信息driver.find_element_by_name("key").clear()time.sleep(3)driver.quit()

find_element_by_class_name

# -*- coding:utf-8 -*-from selenium import webdriverimport timedriver = webdriver.Chrome()# 打开云商网站driver.get("http://[服务器ip]/yuns/index.php")driver.maximize_window()time.sleep(2)# demo01:# 搜索框中输入 女装driver.find_element_by_class_name("but1").send_keys("女装")time.sleep(2)# demo02:# 点击搜索driver.find_element_by_class_name("but2").click()time.sleep(3)# 注意:如果class name是一个复合类(带有空格),则无法定位到元素# 可以使用复合类的部分单词去定位,但是不建议,因为可能会定位到多个元素# driver.get("")# time.sleep(2)# driver.find_element_by_class_name("bg s_btn btn_h btnhover") # NoSuchElementExceptiondriver.quit()

find_element_by_link_text

# -*- coding:utf-8 -*-from selenium import webdriverimport timedriver = webdriver.Chrome()driver.get("http://[服务器ip]/yuns/index.php")driver.maximize_window()time.sleep(2)# demo01:# 点击 T恤男# 精确匹配超链接载体driver.find_element_by_link_text("T恤男").click()time.sleep(2)# demo02;# 点击联系客服driver.find_element_by_link_text("联系客服").click()time.sleep(2)

find_element_by_partial_link_text

from selenium import webdriverimport timedriver = webdriver.Chrome()driver.get("http://[服务器ip]/yuns/index.php")driver.maximize_window()time.sleep(2)# demo01:# 点击 9.9抢大牌# partial_link_text 模糊匹配超链接载体driver.find_element_by_partial_link_text("抢大牌").click()time.sleep(2)# demo02:# 点击 家装节driver.find_element_by_partial_link_text("家装").click()time.sleep(2)driver.quit()

XPath定位详解及高级方法探究

# -*- coding:utf-8 -*-from selenium import webdriverfrom mon.action_chains import ActionChainsimport timedriver = webdriver.Chrome()# 打开云商网站driver.get("http://[服务器ip]/yuns/index.php")# 窗口最大化driver.maximize_window()time.sleep(2)# demo01:# 绝对路径# 搜索框输入 阿迪达斯# XPath的下标是从1开始的driver.find_element_by_xpath("/html/body/div[2]/div/div[2]/div[1]/form/input[1]").send_keys("阿迪达斯")time.sleep(2)# demo02:# 绝对路径# 点击搜索driver.find_element_by_xpath("/html/body/div[2]/div/div[2]/div[1]/form/input[2]").click()time.sleep(2)# demo03:# 绝对路径# 点击 芭芭鸭driver.find_element_by_xpath("/html/body/div[4]/div/div[2]/dl/dd/a[31]").click()time.sleep(2)# demo04:# 相对路径# 搜索框输入 女装# XPath相对路径以 // 开头,通过属性匹配 @class=driver.find_element_by_xpath("//input[@class='but1']").send_keys("女装")time.sleep(2)# demo05;# 清空搜索框中的内容# 通过多个属性匹配,使用and连接driver.find_element_by_xpath("//input[@class='but1' and @name='key']").clear()time.sleep(2)# demo06:# 搜索框输入 童装# 通过属性模糊匹配 [contains(@属性名,'属性值')]driver.find_element_by_xpath("//input[contains(@placeholder,'请输入')]").send_keys("童装")# demo07;# 点击搜索driver.find_element_by_xpath("//form/input[2]").click()time.sleep(2)# demo08:# 点击 我的购物车driver.find_element_by_xpath("//div[@class='small_cart_name']/i").click()time.sleep(2)# demo09:# 点击现在就去购物# 通过 * 匹配driver.find_element_by_xpath("//*[@class='r']/a").click()time.sleep(2)# demo10:# 点击登录 跳转到登录页面driver.find_element_by_xpath("//div/a").click()time.sleep(2)# demo11:# 输入用户名:driver.find_element_by_xpath("//div[@class='binput']/input[@name='username']").send_keys("15059225599")time.sleep(1)# demo12;# 输入密码:123456driver.find_element_by_xpath("//input[@name='password']").send_keys("123456")time.sleep(1)# demo13:# 点击登录按钮driver.find_element_by_xpath("//input[@name='submit']").click()time.sleep(2)# demo14:# 点击我的订单driver.find_element_by_xpath("//div[@class='help']/a[2]").click()time.sleep(2)# demo15:# 点击收货地址driver.find_element_by_xpath("//div[@class='left']/dl/dd[3]/a").click()time.sleep(2)# demo16;# 点击 新增收货地址driver.find_element_by_xpath("//a[@id='add_address']").click()time.sleep(2)# demo17;# 输入姓名:蔡driver.find_element_by_xpath("//input[@id='recive_name']").send_keys("蔡")time.sleep(1)# 输入手机:driver.find_element_by_xpath("//input[@name='mobile']").send_keys("15059225599")time.sleep(1)# 选择省市区driver.find_element_by_xpath("//span[@class='area_name']").click()time.sleep(2)# 选择陕西省driver.find_element_by_xpath("//div/a[27]").click()time.sleep(2)# 鼠标移到选择省市区ele = driver.find_element_by_xpath("//span[@class='area_name']")ActionChains(driver).move_to_element(ele).perform()time.sleep(2)# 选择西安市driver.find_element_by_xpath("//div[@class='conbox'][2]/a[1]").click()time.sleep(2)# 鼠标移到选择省市区ActionChains(driver).move_to_element(ele).perform()time.sleep(2)# 选择市辖区driver.find_element_by_xpath("//div[@class='conbox'][3]/a[1]").click()time.sleep(2)# 输入详细地址driver.find_element_by_xpath("//input[@placeholder='收件人详细地址']").send_keys("西安")time.sleep(1)# demo18:# 点击确认,提示保存成功driver.find_element_by_xpath("//div[2]/div/div[3]/a[2]").click()time.sleep(3)driver.quit()

CSS定位详解及高级语法详解

# -*- coding:utf-8 -*-from selenium import webdriverimport timedriver = webdriver.Chrome()# 打开云商网站driver.get("http://[服务器ip]/yuns/index.php")driver.maximize_window()time.sleep(2)# demo01:# 绝对路径,使用 > 分隔,在搜索框中输入童装# CSS Selector下标从1开始,跟XPath一样driver.find_element_by_css_selector("html>body>div>div>div>div>form>input:nth-child(1)").send_keys("童装")time.sleep(2)# demo02:# 绝对路径,使用 空格 分隔,点击“家装节”进行跳转driver.find_element_by_css_selector("html body div.logo_bar div div.sch div.schhot a:nth-child(2)").click()time.sleep(2)# demo03:# 绝对路径,使用 > 加 空格 分隔,点击“T恤男”进行跳转driver.find_element_by_css_selector("html body div.logo_bar div > div.sch > div.schhot > a:nth-child(5)").click()time.sleep(2)# demo04:# 相对路径,通过class选择器定位元素,清空搜索框中的文本信息# class选择器: .driver.find_element_by_css_selector("input.but1").clear()time.sleep(2)# demo05:# 通过class选择器定位元素,在搜索框中输入女装driver.find_element_by_css_selector(".but1").send_keys("女装")time.sleep(2)# demo06:# 通过class选择器定位元素,点击搜索按钮driver.find_element_by_css_selector(".but2").click()time.sleep(2)

# demo07:# 通过id选择器定位元素,点击购物车# id选择器: #driver.find_element_by_css_selector("i#cart_num").click()time.sleep(2)# demo08:# first-child,点击首页跳转至首页driver.find_element_by_css_selector(".help>a:first-child").click()time.sleep(2)# demo09:# 通过id选择器定位元素,点击购物车driver.find_element_by_css_selector("#cart_num").click()time.sleep(2)# demo10:# last-child,点击联系客服进行跳转driver.find_element_by_css_selector(".help>a:last-child").click()time.sleep(2)# demo11:# 通过属性定位,注意与XPath区别,在搜索框输入拖鞋driver.find_element_by_css_selector("input[placeholder='请输入你要查找的关键字']").send_keys("拖鞋")time.sleep(2)# demo12:# 通过多个属性定位,注意与XPath区别,清空搜索框中的文本信息driver.find_element_by_css_selector("input[name='key'][class='but1']").clear()time.sleep(2)# demo13:# 倒序 nth-last-child(),点击首页进行跳转driver.find_element_by_css_selector(".help>a:nth-last-child(3)").click()time.sleep(2)# demo14:# 在搜索框中输入球鞋driver.find_element_by_css_selector("div[class='schbox']>form>input:nth-child(1)").send_keys("球鞋")# demo15:# css_selector 不区分干儿子和亲儿子,# 若一个标签下有多个同级标签,虽然这些同级标签的tag name不一样,但是他们是放在一起排序的# 打开百度,在搜索框中输入 软件测试 ,点击百度一下driver.get("")driver.maximize_window()time.sleep(3)driver.find_element_by_css_selector("form#form>span:nth-child(8)>input").send_keys("软件测试")driver.find_element_by_css_selector("form#form>span:nth-child(9)>input").click()time.sleep(3)

上面这些是我的收集和整理,这些资料,对于【软件测试】的朋友来说应该是最全面的仓库,这个仓库也陪伴我走过了最艰难的路程,希望也能帮助到你

关注【程序媛木子】微信公众号里海量资源免费获取,技术交流群(644956177)

# 关闭当前窗口driver.close()time.sleep(3)# 关闭所有窗口driver.quit()

find_elements_by_tag_name

tag = driver.find_elements_by_tag_name("input")

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。