前面我们了解了selenium如何打开不同的浏览器,以及对浏览器的进行不同的配置。打开浏览器后,接下来需要对页面进行操作了,那么selenium又是如何操作页面的呢?熟悉前端技术的小伙伴自然很明白,web页面都是HTML标签组成的,自动化测试实际就是slenium通过各种方式找到html标签,然后调用页面的各种事件来实现的。这节我们先学习如何找到页面当中的标签,也就是所谓的元素定位,然后再在这个基础上,学习如何给这些元素加入动作。
第一个必须要知道的,打开某页面的方法:
#打开百度首页
driver.get("http://www.baidu.com")
selenium的元素定位常见的有八种:以百度搜索页面为例:
from selenium import webdriver
driver = webdriver.Chrome()
driver.get("http://www.baidu.com")
#定位百度的搜索框input框
driver.find_element_by_id("kw")#通过元素id属性定位
driver.find_element_by_name("wd")#通过元素name属性定位
driver.find_element_by_class_name("s_ipt")#通过元素的class属性定位
driver.find_element_by_xpath("//*[@id='kw']")#通过元素xpath定位
driver.find_element_by_css_selector("#kw")#通过元素css定位
driver.find_element_by_tag_name("input")#通过元素的标签名定位
#定位某个a标签
#例如某个标签是<a href="http://www.baidu.com">百度</a>,如果要定位到这个a标签,可以用以下方法
driver.find_element_by_link_text("百度")#需完全匹配到a标签的文本内容:百度
driver.find_element_by_partial_link_text("百")#模糊匹配到a标签的文本内容:百度
初学者可能会问,这些id,name,xpath是怎么获取的呢?以谷歌浏览器为例,元素属性查看是使用谷歌浏览器自带的开发者工具,看截图:
要想熟练定位元素,需要一定的html的基础,这样定位起来才能得心应手,如果对html还不了解的同学,需要花点时间学习下相关的知识。在实际工作中,元素的属性和组合多种多样,需要结合实际情况,采用上面的方法,基本原则是尽量用最简单的,最快速的方法定位到想要的元素。对于css定位,和xpath定位,前提是需要熟悉这两个的语法,接下来会简单介绍这方面的知识。