- 使用id定位
#coding=utf-8 from selenium import webdriver from time import sleep dr=webdriver.Firefox(executable_path='/Users/chichi/Documents/zidonghua/geckodriver') dr.get('http://www.baidu.com') dr.find_element_by_id('kw').send_keys('python selenium') #使用id定位到搜索框,并输入搜索内容 sleep(4) dr.find_element_by_id('su').click() #使用id定位到'百度一下'按钮,并点击 sleep(4) dr.quit()
- 使用name定位
#coding=utf-8 from selenium import webdriver from time import sleep dr=webdriver.Firefox(executable_path='/Users/chichi/Documents/zidonghua/geckodriver') dr.get('http://douban.com') find=dr.find_element_by_name('q') #使用name定位方法,定位到搜索框 find.send_keys(u'比利恩的中场故事') #输入搜索内容 sleep(3) find.submit() #提交表单内容 sleep(5) dr.quit() #关闭浏览器
- 使用ClassName定位
#coding=utf-8 from selenium import webdriver from time import sleep dr=webdriver.Firefox(executable_path='/Users/chichi/Documents/zidonghua/geckodriver') dr.get('http://www.taobao.com') dr.find_element_by_class_name('search-combobox-input').send_keys(u'macbook架') #使用clsssname定位到搜索框 sleep(5) dr.find_element_by_class_name('btn-search').click() #使用classname定位到搜索按钮 sleep(5) dr.quit()
- 使用TagName定位
通过TagName来查找元素时,同一个页面上有相同的TagName的元素可能一个都没有,可能有多个。以小米主页为例,如果搜索以script为TagName的元素
就会返回多个结果。因此,建议在使用TagName查找元素时,使用findElements()来代替findElement()函数。
#coding=utf-8 from selenium import webdriver from time import sleep dr=webdriver.Firefox(executable_path='/Users/chichi/Documents/zidonghua/geckodriver') dr.get('http://www.xiaomi.com') listel=[] listel=dr.find_elements_by_tag_name('script') print 'there is %d scripts in xiaomi\'s main page' %len(listel) dr.close()
- 使用LinkText定位
#coding=utf-8 from selenium import webdriver from time import sleep dr=webdriver.Firefox(executable_path='/Users/chichi/Documents/zidonghua/geckodriver') dr.get('http://www.xiaomi.com') dr.find_element_by_link_text(u'小米移动网').click() sleep(5) dr.quit()
- 使用partiallinktext定位
#coding=utf-8 from selenium import webdriver from time import sleep dr=webdriver.Firefox(executable_path='/Users/chichi/Documents/zidonghua/geckodriver') dr.get('http://www.xiaomi.com') dr.find_element_by_partial_link_text(u'移动版').click() sleep(3) dr.quit()
注:findelement()方法只会返回页面上第一个满足PartialLinkText为"移动版"的元素。如果希望找到页面上所有包含部分文本为"移动版"的链接元素,则使用
findelements()方法来替换。