Selenium入门系列3 单个元素的定位方法

UI自动化首先要识别对象,再操作对象,最后判定实际结果与预期结果是否一致。

这一节学习的是识别单个对象,webdriver提供了8种方式。

<a id="idofa" class="classofa" name="nameofa" href="">linktextofa</a>

find_element_by_class_name( 'classofa')  根据class定位

find_element_by_id("idofa")   根据id定位(代码规范的话,id是唯一的。注意的点在于有时候开发会动态改变id

find_element_by_name("nameofa")  根据name定位

find_element_by_tag_name("a") 根据tag定位

find_element_by_link_text('linktextofa')  链接文本

find_element_by_partial_link_text("link")  链接部分文本

 

find_element_by_css_selector  最好用的,需熟悉css选择器。css改变元素样式首先就得选择元素,选择器有标签、id、class、属性、组合、父子、后代、兄弟等等,超级强大。

css 选择器 http://www.w3school.com.cn/cssref/css_selectors.asp

find_element_by_css_selector("a")  标签

find_element_by_css_selector("#idofa")  #id

 find_element_by_css_selector(".classofa")    .class

find_element_by_css_selector("a#idofa")  标签#id

 find_element_by_css_selector("a.classofa")   标签.class

 find_element_by_css_selector('a[name=''nameofa"')    标签[属性]

......

 

find_element_by_xpath('//a[@id="idofa"]')   也很强大。css_selector不好使的时候用,据说比css_selector慢

 xpath  http://www.w3school.com.cn/xpath/xpath_nodes.asp

#coding=utf-8

#单个对象的识别webdriver提供了8种方式 
#find_element_by_id,name,class_name,tag_name,css_selector,link_text,partial_link_text,xpath
from selenium import webdriver import time driver = webdriver.Firefox() driver.get("http://www.bing.com") driver.find_element_by_id("sb_form_q").send_keys("byid ") time.sleep(1) driver.find_element_by_name("q").send_keys("byname ") time.sleep(1) driver.find_element_by_class_name("b_searchbox").send_keys("byclassname ") time.sleep(1) driver.find_element_by_tag_name("input").send_keys("bytagname ") time.sleep(1) driver.find_element_by_css_selector("input#sb_form_q").send_keys("bycssselector ") time.sleep(1) driver.find_element_by_xpath("//input[@class='b_searchbox']").send_keys(" byxpath") time.sleep(1) driver.get("http://www.bing.com") driver.find_element_by_link_text("Academic").click() time.sleep(2) driver.get("http://www.bing.com") driver.find_element_by_partial_link_text("Office").click() time.sleep(2) driver.quit()
原文地址:https://www.cnblogs.com/dinghanhua/p/9735447.html