pythonxpath定位_python-selenum3 第四天定位——常用定位与Xpath定位详解

如果把写用例当做是手工测试,那么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']")

0aed84a439c2955d48c54b7343467942.png

#如果想制定具体某个标签,就可以直接写标签名称

#百度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")

fe6dd0c35eab3ba988a86565e30413c9.png

#同级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()

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值