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()