一、通过id定位元素
find_element_by_id("input")
find_element_by_id("search-button")
find_element_by_id()方法用于元素中id 属性的定位。
二、通过class定位元素
find_element_by_class_name("placeholder")
find_element_by_class_name("skin-search-button")
find_element_by_class_name()方法用于元素中class 属性的定位。
三、通过name定位元素
find_element_by_name("q")
find_element_by_name()方法用于元素中name 属性的定位
四、通过link定位元素
find_element_by_link_text("360导航")
find_element_by_link_text("设为主页")
find_element_by_link_text("设置")
find_element_by_link_text()方法通过元素标签对之间的文本信息来定位元素。
五、通过partial link定位元素
一个很长很长的文本链接
通过partial link 定位如下:
find_element_by_partial_link_text("一个很长的")
find_element_by_partial_link_text("文本连接")
六、通过tag定位元素
tag 定位取的是一个元素的标签名,通过标签名去定位单个元素的唯一性最低,因为在一个页面中有太多的元素标签为类似<div>
和<input>
,所以很难通过标签名去区分不同的元素。
inputs = aa.find_elements_by_tag_name("input")
for i in inputs:
if i.get_attribute("type") == "submit":
i.click()
# get_attribute ----- 获取某个对象的指定属性的值
七、通过XPath定位
1)通过绝对路径定位:
find_element_by_xpath("/html/body/div[2]/div[1]/section[2]/form/fieldset/div[2]/input")
find_element_by_xpath("/html/body/div[2]/div[1]/section[2]/form/fieldset/input[4]")
2)通过元素属性定位:
find_element_by_xpath("//input[@id='input']")
find_element_by_xpath("//input[@id='search-button']"