首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >python-selenum3 第四天定

python-selenum3 第四天定

作者头像
py3study
发布2020-01-03 14:43:22
4350
发布2020-01-03 14:43:22
举报
文章被收录于专栏:python3python3

如果把写用例当做是手工测试,那么UI级自动化就是将手工测试变成计算器自动执行的测试

将手工的顺序变成自动运行。手工测试如果就是点点点,那么只要找到元素,我们操作即可

元素的定位分很多,常用的如:id name class 对应的by.id by.name by.classname 这是标签执行就能看到的内容 例如

driver = webdriver.Firefox(executable_path="d:\\geckodriver")
driver.get("http://www.baidu.com")
driver.find_element_by_id("'kw").send_keys("1")
driver.find_element_by_name("wd").send_keys("2")
driver.find_element_by_class_name("s_ipt").send_keys("3")

还有常用的就是通过标签的路径进行定位,常用的路径定位就是xpath


浏览器的很多插件都可以提供xpath和css定位的方式 比如 常见的 firepath 和WebDriver Element Locator 等等。那么相对路径在运行时不能找到也可以使用绝对路径。但是 下面要说的还是自行编写:

#如果不想制定标签名称,可以用*号表示任意标签
#有id的值的时候
driver = webdriver.Firefox(executable_path="d:\\geckodriver")
driver.get("http://www.baidu.com")
driver.find_element_by_xpath("//*[@id='kw']").send_keys("1")

#有name的值的时候
driver.find_element_by_xpath("//*[@name='wd']").send_keys("2")

#有class的值的时候
driver.find_element_by_xpath("//*[@class='s_ipt']").send_keys("3")

#任意唯一属性的值的时候
driver.find_element_by_xpath("//*[@autocomplete='off']").send_keys("4")#任意唯一属性的值的时候
ren = driver.find_element_by_xpath("//*[@autocomplete='off']")

python-selenum3 第四天定位——常用定位与Xpath定位详解
python-selenum3 第四天定位——常用定位与Xpath定位详解
#如果想制定具体某个标签,就可以直接写标签名称
#<input id="kw" name="wd" class="s_ipt" value="" maxlength="255" autocomplete="off">百度html
driver.find_element_by_xpath("//input[@name='wd']").send_keys("5")
#如果属性不明显,我们可以按照路径定位到他的上一层,xpath称为父元素,之后通过父元素在定位
#例如:这里的例子失败了。。。。。
driver.find_element_by_xpath("//span[@class='bg s_ipt_wr quickdelete-wrap']/input").send_keys("6")

#如果父元素定位不到,那么可以从父元素的父元素来定位,上上层,听说父亲的父亲是爷爷
driver.find_element_by_xpath("//form[@id='form']/span/input").send_keys("7")

python-selenum3 第四天定位——常用定位与Xpath定位详解
python-selenum3 第四天定位——常用定位与Xpath定位详解
#同级N多相同,父元素就一个,子元素太多,可以按照出生来取名老大就是1,老二就是2.。。。
driver.find_element_by_xpath("//select[@name='ss']/option[1]").click()
driver.find_element_by_xpath("//select[@name='ss']/option[2]").click()
driver.find_element_by_xpath("//select[@name='ss']/option[3]").click()

关于逻辑运算定位and\or\not and用的多一些 同时满足多个条件下的定位 例如

driver = webdriver.Firefox(executable_path="d:\\geckodriver")
driver.get("http://www.baidu.com")
driver.find_element_by_xpath("//*[@id='kw' and @autocomplete='off']").send_keys("1")

关于模糊匹配

driver = webdriver.Firefox(executable_path="d:\\geckodriver")
driver.get("http://www.baidu.com")
#模糊匹配某个属性
driver.find_element_by_xpath("//*[contains(@id,'kw')]").send_keys("123456789123456789")

#模糊匹配某个文字
driver.find_element_by_xpath("//*[contains(text(),'百度首页')]").click()

#模糊匹配以什么开头。这里id应该是kw
driver.find_element_by_xpath("//*[starts-with(@id,'k')]").send_keys("123456789")

#模糊匹配以什么结尾。这里name应该是tj_login
river.find_element_by_xpath("//*[ends-with(@name,'login')]").click()

#模糊匹配正则表达式。这里是百度上面的hao123连接,这里例子只能用在百度首页。其他页面不会显示hao123
driver.find_element_by_xpath("//*[matchs(text(),'hao123')]").click()
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2019-09-23 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档