方法一:通过元素节点信息ID来定位:
driver.find_element_by_id("kw")
方法二:通过元素的xpath 路径:
driver.find_element_by_xpath("//*[@id='indexAdmin']/div[1]/div/div/div/div[2]/ul/li[4]/a")
方法三:通过元素的tag_name:
driver.find_element_by_tag_name("form")
方法四:通过元素link的text:
driver.find_element_by_link_text("新闻") 或者:通过xpath:
driver.find_element_by_xpath("//*/div[@id='u1']/a[text()='新闻']") 通过text()这个在XPath中的函数。
方法五:通过partial link text定位:
driver.find_element_by_partial_link_text("主页“).click()//选择partial link text的时候,要选择一个比较唯一的字段。
方法六:通过class name定位:
driver.find_element_by_class_name("s_ipt")
方法7:通过name定位:
driver.find_element_by_name(”wd")//name这个属性不是所有的节点都有,如果用name来定位,就和by_id, by_class一样的效果。
方法8:通过css定位:
css优点:语法比xpath简洁,定位速度比xpath快。
css缺点:不支持用逻辑运算符来定位
# 表示id
.表示class
>表示子元素,层级
1. #通过id的属性
driver.find_element_by_css_selector("#su")
2. #通过class_name属性
driver.find_element_by_css_selector(".s_ipt")
3 #通过其它属性
find_element_by_css_selector(["属性=‘属性值’ ]")
find_element_by_css_selector(["属性=属性值 ]") #引号在这里加不加都没关系,不会影响定位。
实例2.1:find_element_by_css_selector("[style=‘display’]")
实例2.2:find_element_by_css_selector("[style=display]") ---------请注意这里属性值没有加引号
4. #通过父子关系定位:
find_element_by_css_selector(“input#id的属性值>下级标签”)
实例:find_element_by_css_selector(“input#kw>div”)
5.#通过爷爷关系定位
如果父亲标签中没有可以标识的唯一的元素的属性值时,那我们可以考虑用爷爷标签结合属性来定位元素。例如:
实例:find_element_by_css_selector(“input#kw>divs>div#ko”)