Python+Selenium之练习篇2: 页面上元素定位

方法一:通过元素节点信息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”)

你可能感兴趣的:(Python+Selenium之练习篇2: 页面上元素定位)