做ui自动化的最基础的就是页面元素定位了,如果连页面元素都定位不到,自动化从何谈起呢?接下来我们就看看页面元素定位的方法吧!(这里就用百度页面来进行演示)

一、最通用的几种定位方式:

1.通过id定位

driver.find_element_by_id('su')

2.通过name定位

driver.find_element_by_name('mp')

3.通过class属性

driver.find_element_by_class_name('s_ipt')

4.通过文本链接

driver.find_element_by_link_text('新闻')

以上的方法都是最基本的方法,在实际中用到的并不多。接下来的两个方法才是重点!!!

一、xpath方法

1.通过绝对路径(但是这个方法很不可取,不仅会导致程序运行很缓慢,也会显得很low,很不美观,如果路径有几行依然复制几行吗?显然有问题)

driver.find_element_by_xpath('/html/body/div[1]/div[1]/div/div[1]/div/form/span[1]/input')

2.通过相对路径

以图上定位这个form表单为例

方法一:

driver.find_element_by_xpath('//*[@id="head"]/div/div/div/form')

上面的写法可以理解为,通过xpath寻找,任意(*代表)id属性为’head‘下面的div/div/div下面的form表单

方法二:

driver.find_element_by_xpath('//*[@class="s-form"]/div/form')

上面的写法可以理解为,通过xpath寻找,任意(*代表)id属性为’s-form‘下面的/div下面的form表单

方法三;

driver.find_element_by_xpath('//form[@id="form"]')

上面的写法可以理解为,通过xpath寻找,id为form的form表单

xpath是万能的,没有xpath定不到的元素,还有其他很多地方方法,具体场景具体方法,这里就不一一再举例了....(比如通过文字等等)

一、css方法

还是拿这个图片来举例吧

方法一、单一属性定位

driver.find_elements_by_css_selector('form')

方法二、id定位

driver.find_elements_by_css_selector('form')

方法三、class定位

driver.find_elements_by_css_selector('fm')

方法四、其他属性定位

driver.find_elements_by_css_selector('[name="f"]')

方法五、组合属性定位

driver.find_elements_by_css_selector('form#form') # 属性加上id
driver.find_elements_by_css_selector('form.s_ipt') # 属性加上class
driver.find_elements_by_css_selector('form[name="f"]') # 属性加上其他属性

以上是css最常用的定位方法,还有很多就不一一举例了,具体场景具体使用....

常用操作

click() 点击

send_keys()  输入内容

python ui自动化之元素定位和常用操作的更多相关文章

  1. (appium+python)UI自动化_03_元素定位工具

    前言 在UI自动化过程中,需要对手机app上的元素进行定位,然后进一步编写自动化脚本操作app.定位元素首先需要定位工具来辅助查看页面元素.小编常用的定位工具有2种,分别是uiautomatorvie ...

  2. [python爬虫] Selenium常见元素定位方法和操作的学习介绍(转载)

    转载地址:[python爬虫] Selenium常见元素定位方法和操作的学习介绍 一. 定位元素方法 官网地址:http://selenium-python.readthedocs.org/locat ...

  3. UI自动化之元素定位(xpath、css)

    很早之前就已经写过自动化了,不过点着功能久了就会容易忘记元素定位,尤其是xpath和css定位,所以就花点时间做下总结收集. xpath有两种定位: 一.绝对路径(不推荐使用,除非已经使用了所有方式仍 ...

  4. 关于UI自动化IOS元素定位方法说明

    1. 元素属性介绍 下图是通过weditor定位的微博的"我的钱包",各属性如下图: className:元素类型,如:XCUIElementTypeButton isEnable ...

  5. [python爬虫] Selenium常见元素定位方法和操作的学习介绍

    这篇文章主要Selenium+Python自动测试或爬虫中的常见定位方法.鼠标操作.键盘操作介绍,希望该篇基础性文章对你有所帮助,如果有错误或不足之处,请海涵~同时CSDN总是屏蔽这篇文章,再加上最近 ...

  6. 关于UI自动化中元素定位常用方法的个人总结

    1.如果目标元素有id属性,优先使用id定位: 2.元素locator尽可能保证简洁,考虑locator中路径的变化频率,尽量减少后期更新和维护成本: 3.使用xpath时,不要一味的使用‘/’逐层进 ...

  7. python UI自动化之JS定位

    1.话不多说,直接贴入代码 上面的 document.getElementById 可以替换成别的定位方式,比如: 通过name获取:document.getElementsByName 通过标签获取 ...

  8. (appium+python)UI自动化_09_unittest批量运行测试用例&生成测试报告

    前言 上篇文章[(appium+python)UI自动化_08_unittest编写测试用例]讲到如何使用unittets编写测试用例,并执行测试文件.接下来讲解下unittest如何批量执行测试文件 ...

  9. selenium+python自动化之元素定位

    自动化按步骤拆分的话,可以分为四步操作:定位元素,操作元素,获取返回结果,断言(返回结果与期望结果是否一致),最后自动出测试报告.本篇接下来讲基本的八种元素定位方法.说的通俗一点,就是教大家找对象. ...

随机推荐

  1. memcached和redis对比

    关于memcached和redis的使用场景,总结如下:两者对比: redis提供数据持久化功能,memcached无持久化. redis的数据结构比memcached要丰富,能完成场景以外的事情: ...

  2. 解决无法将“babel”项识别为 cmdlet、函数、脚本文件或可运行程序的名称。

    错误截图: 第一反应想到的是环境变量没有配置好,再仔细检查一下,并没有错误 在cmd窗口运行命令“ babel --version ”,如果出现对应的版本号,那就说明环境变量是正确的 解决方案: 用管 ...

  3. 阿里巴巴手册之-Arrays.asList()数组转集合的问题

    转载来源:https://blog.csdn.net/qq_36443497/article/details/79663663?utm_source=blogxgwz9 在使用工具类Arrays.as ...

  4. mini-batch是什么 以及dataloader的作用

    mini-batch是什么 以及dataloader的作用 待办 我们在训练神经网络时,使用的是mini-batch(一次输入多张图片),所以我们在使用一个叫DataLoader的工具为我们将5000 ...

  5. 题解【洛谷P1995】口袋的天空

    题面 题解 从图中删边,直到图中只剩\(k\)条边,计算权值之和即可. 代码 #include <iostream> #include <cstdio> #include &l ...

  6. Python记之薄暮笔记

    ——————————————————————————————接下来请欣赏与众不同的表演. Python打印所有的字符串时,都用引号将其括起. 有一些独特而有用的字符串表示方式. 可使用三引号表示很长的 ...

  7. noobSTL-0-开题报告

    noobSTL-0-开题报告 STL介绍 STL是Standard Template Library的简称,中文名标准模板库. STL是一种泛型编程.面向对象编程关注的是编程的数据方面,而泛型编程关注 ...

  8. 8.10-Day1T1-数字(number)

    数字number 题目大意 给定n,k,s,从1到n中取出k个数,使其之和等于s 求可行的方案数(模1e9+7) 题解 一眼dp,于是我去写了dfs,带着少的可怜的剪枝,快乐的tle着... 设 f[ ...

  9. MongoDB_05_更新和删除

    文档的更新和删除 更新文档的方法: db.collection.update(query,update,options) //或 db.collection.update( <query> ...

  10. 003 CSS汇总

    字体属性:(font) 大小 {font-size: x-large;}(特大) xx-small;(极小) 一般中文用不到,只要用数值就可以,单位:PX.PD 样式 {font-style: obl ...