简单的元素定位

  • 使用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()方法来替换。 

posted @ 2016-11-20 14:05  子信风蓝蓝  阅读(299)  评论(0编辑  收藏  举报