Python+Selenium+Unittest 之selenium2--元素定位1-简介

阿里云国内75折 回扣 微信号:monov8
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6

        这篇先说下webdriver的几种元素定位方式让大家有个大概的了解UI自动化说白了就是使用代码代替人工去进行操作在页面上执行人员可以直接对看到的任何地方进行点击、拖动等操作而代码的话需要识别到到底要点那个按钮、从那个位置拖动到那个位置等。所以为了能让代码能成功移动到各个元素上元素定位是很关键的一点如果你能定位到页面上的所有元素那么对于写自动化已经成功了很大一部分了。

        在WebDriver中有18中元素定位的方法我们常用的只是其中8种。首先来看下都有哪18种元素定位方法。

        

        从上图中可以看到主要分为两大类find_element和find_elements两部分然后每部分中各有9种元素定位的方式由于find_element和find_elements的9种元素定位方法大致一样所以下面就只先列出了find_element的所有方法。find_element和find_elements区别具体使用后面会详说

find_element_by_id()       #id定位
find_element_by_name()     #name定位
find_element_by_class_name()   #class定位
find_element_by_tag_name()     #tag定位
find_element_by_link_text()    #link定位
find_element_by_partial_link_text()   #partial_link定位
find_element_by_xpath()    #xpath定位
find_element_by_css_selector()    #css定位
find_element()   #元素定位参数化  不常用常用的8种一般指的是上面那8种

        知道了有这几种元素定位方法后到底要中怎么才能使用呢这里先简单说下具体每个使用方法后面会具体说到。

        我这里使用的是谷歌浏览器首先我们可以先打开百度首页。

        之后按F12或者在页面右键后会有个检查的选项。选择后可打开控制台之后按下图的步骤就能看到id、name、class这些东西每个元素的定位是不同的但是在代码中使用的话必须要保证其唯一性比如我们要用id="kw" 来定位搜索框就要保证这个 id="kw" 在该页面只有这一个元素才行这样才能准确的找到我们要定位到的元素之后写的多了之后就可以就大概知道每个元素都能怎么定位了。

        定位到元素之后我们可能会对其进行内容输入、点击、情况搜索栏、刷新浏览器页面、后退浏览记录等这时候就要使用键盘操作和鼠标操作的一些内容了下面举个简单的例子可以先了解下。如果有条件可以直接复制粘贴运行下鼠标操作、键盘操作、浏览器操作相关的后面也会单独说明这块就是先对自动化有个大概的概念

from selenium import webdriver #导入selenium模块的webdriver
import time    #导入time模块
driver = webdriver.Chrome()     #webdriver.Chrome()是启动谷歌浏览器然后定义成变量driver    
driver.get("https://www.baidu.com")   #打开百度浏览器
driver.find_element_by_id("kw").send_keys("放假安排")    #定位到输入框然后输入框输入 放假安排
time.sleep(5)     #等待5s
driver.find_element_by_id("su").click()     #定位到百度一下的搜索按钮然后点击该按钮
time.sleep(5)    #等待5s
driver.back()    #对浏览器进行后退操作
time.sleep(5)    #等待5s
driver.quit()    #关闭浏览器

        代码解释执行上面代码后首先会打开谷歌浏览器之后会打开百度的官网然后会定位到输入框的元素(id="kw")定位到后会对其输入 放假安排4个字然后等待5S在这里加入等待只是为了能在执行的时候更直观的看到每步有没有操作如果没有等待这个过程会操作的很快完全看不到都执行了哪些内容time模块也是一个很重要的内容在很多地方都必须要用到的具体time模块相关的东西后面会单独写一篇来说明之后定位到百度一下的按钮id="su"然后点击该按钮之后等待5秒后对浏览器进行后退的操作之后等待5S关闭浏览器。

TIPS如何确定元素是不是唯一可以在控制台直接ctrl+F去进行搜索看看是不是元素是唯一的下面搜索结果中有两个kw但是其中一个是wdfield="kw"另一个是id="kw"我们用的是id定位所以只要保证id="kw"是一个即可。

         这篇就先说这些知道写一个ui的页面需要的流程和步骤即可思路就是想办法定位到要操作的元素然后如果对该元素有相关操作的话再去进行鼠标操作或者键盘操作即可。然后再这样一步步的去完善我们要执行的自动化的流程。


        如果大家在使用过程中遇到了问题可以在文章下留言或者关注公众号刘阿童木的进化记录进行留言

                   下图为公众号二维码内容会同步发出大家可以关注一起学习

                                              

阿里云国内75折 回扣 微信号:monov8
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6
标签: python