本文主要是讲解在web页面中如何定位元素,这是进行自动化操作的前提。
前言
我们主要是要做web自动化,通常一个web页面上有输入框、按钮、文字链接、图片等元素,自动化测试要做的就是模拟鼠标和键盘来操作这些元素,如单击、输入、鼠标悬停等。操作这些元素的前提是要定位它们,就是找到它们的位置,所以下面可以利用WebDriver采用几种不同的方式去进行元素定位。
元素定位方法以及Python中对应的方法
id定位 find_element_by_id()
name定位 find_element_by_name()
tag定位 find_element_by_tag_name()
class定位 find_element_by_class_name()
link_text定位 find_element_by_link_text()
partial link定位 find_element_by_partial_link_text()
XPath定位 find_element_by_xpath()
CSS_selector定位 find_element_by_css_selector()
各定位方法具体介绍
id定位
(HTML规定,id在HTML文档中必须是唯一的)
首先打开百度的页面
接着按F12,在elements页签可以看到html代码
现在以百度输入框这个页面元素为例子,要想定位到2这个输入框的位置,要先点1,然后进入到定位模式,这个时候点2,就会在3那里发现输入框2的定位信息,我们可以看到id = “kw”,所以相应的定位方法是find_element_by_id(“kw”),即我们可以通过这个方法找到这个输入框,那么接下来就可以在框里输入一些文字等信息了
同样的方法,我们也可以定位到“百度一下”这个元素,先点1,再点“百度一下”,它的定位信息也会出来,我们可以看到id = “su”,所以相应的定位方法是find_element_by_id(“su”),即我们可以通过这个方法找到这个框,那么接下来就可以进行通过点击这个“百度一下”去进行搜索了
name定位
HTML规定,name用来指定元素的名称,因此它的作用更像是人的姓名
还是以百度的输入框为例,从上面的图中可以看到,name = “wd”,所以相应的方法是:find_element_by_name(“wd”)
class定位
HTML规定,class用来指定元素的类名
还是以百度的输入框为例,从上面的图中可以看到,class = “s_ipt”,所以相应的方法是:find_element_by_class_name(“s_ipt”)
tag定位
HTML通过tag来定义不同页面的元素,比如,标签一般用来定义输入框ÿ