hello!最近饲养员在学习web自动化,主要是通过python+selenium进行代码的编写。
首先为大家介绍定位元素的几种方法:
driver.find_element_by_id# 根据id定位
driver.find_element_by_class_name#根据class_name 只可以传一个值
driver.find_element_by_name#根据name进行定位
driver.find_element_by_link_text("新闻").click() #####按照链接名称定位元素
driver.find_element_by_partial_link_text("新").click()######匹配部分文本
driver.find_element_by_tag_name######按照标签名进行定位(现在不怎么使用了)
例1:通过id定位百度搜索框
首先进入百度页面,然后打开开发者工具,鼠标右键,选择检查,选择Elements,查看界面元素。鼠标点击元素选择器,然后在页面中选择自己需要定位的地方,在Elements就会选中对应的元素,根据信息选择以上方法或者css selector进行定位即可
代码:
driver.find_element_by_id('kw')
还可以使用css_selector 进行定位
css_selector
div.表示后面的class,
>表示上下级关系(子元素),
#代表id
:nth-child(index) 第几个子元素
不加空格表示并列关系,
class有空格,表示一个元素有多个class属性名称,定位时选择其中一个就可以。
例2:如何定位百度界面下对应的搜索内容
在百度页面输入python,会出现对应的搜索内容,如图,那么我们如何定位到其中一个内容呢?假设我们想要定位的内容就是第二个框--》菜鸟教程,根据上一个例子,同样的操作,打开开发者工具,我们需要观察元素。
发现想要的内容的class都不是唯一的,并且有很多class name 都是相同的存在于同一个div中,点击下面的div,发现上面的内容被选中了,说明那一段元素正是我们需要定位的。
此时我们可以根据上面的规则进行定位,第四个子元素为菜鸟教程。
div #content_left>div:nth-child(4)
今天的内容主要就是如何定位元素,关于定位不熟悉的同学们,需要多进行练习,“无他,唯手熟尔”。