今天先总结下selenium对元素的定位方法
一.网页定位
网页定位即根据具体网页元素定位出我们所需要的元素
可根据class,id,tag等元素进行定位
find_element(self,by='id',value=None)
find_element_by_class_name(self,name)
find_element_by_css_selctor(self,css_selector)
find_element_by_id(self,id_)
find_element_by_link(self,link_text)
find_element_by_name(self,name)
find_element_by_partial_link_text(self,link_text)
find_element_by_tag_name(self,name)
find_element_by_xpath(self,xpath)
这里应注意的是element,没加s,意思就是它返回的是你找到的元素的第0个
如果你写的elements,如find_elements_by_id(self,id),则它返回的是一个元素的列表,如果你想用某个元素的属性或方法,则应该给个具体的下标
二.内容定位
内容定位即获取我们得到的elelment的一些内容,如text,href,title等。
最常见的方法是直接.text,但这个方法只能获取两个标签的内容
如果你想获取的是它的属性信息,或者遇到一个单标签,那这个方法就行不通了
如下面的百度首页
如果你想获取“百度一下”这四个字,你就要进入标签的属性里去
这是要运行这个代码
text=browser.find_element_by_id('su')
print(text.get_attribute('value'))
这里的get_attribute(value),从字面意思就可以知道,得到属性的内容
如果属性里面又有其子元素,如value={title='123',url='456'}(这里只是举例)
那么上面代码里的text还包含了一些内容,想要得到具体的内容,还需用get()
s=eval(text)
title=s.get('title')