这个是python+selenium之元素定位基础知识
- #coding=utf-8
- #使用ID定位
- from selenium import webdriver
- driver = webdriver.Firefox()
- driver.get('http://www.baidu.com')
-
- driver.find_element_by_id("kw").send_keys("selenium")
- #通过id定位输入框,html规定,id在文档中必须唯一,类似于我们的身份证号
- driver.find_element_by_id("su").click()
- driver.quit()
-
- #coding=utf-8
- #使用name定位
- from selenium import webdriver
- driver = webdriver.Firefox()
- driver.get('http://www.baidu.com')
-
- driver.find_element_by_name("wd").send_keys("selenium")
- #通过name定位输入框,那么一般不唯一,类似于我们的名字
- driver.find_element_by_id("su").click()
- driver.quit()
-
- #coding=utf-8
- #使用class定位
- from selenium import webdriver
- driver = webdriver.Firefox()
- driver.get('http://www.baidu.com')
-
- driver.find_element_by_class_name("s_ipt").send_keys("selenium")
- #通过class定位输入框,元素类名,用法与id,name一致,class类似我们的职业
- driver.find_element_by_class_name("bg s_btn").click()
- driver.quit()
-
- #还有一种是通过tag定位,识别效率很低,一般不用;
-
- #coding=utf-8
- #使用link定位
- from selenium import webdriver
- driver = webdriver.Firefox()
- driver.get('http://www.baidu.com')
-
- driver.find_element_by_link_text(u'新闻').click()
- #与之前方法不同,是用来定位文本链接的
- driver.quit()
-
- #coding=utf-8
- #使用partial_link定位
- from selenium import webdriver
- import time
- driver = webdriver.Firefox()
- driver.get('http://www.baidu.com')
- time.sleep(6)
- driver.find_element_by_id("kw").send_keys("selenium")
- driver.find_element_by_id("su").click()
- time.sleep(6)
- driver.find_element_by_partial_link_text(u"Selenium篇").click()
- #对link的一种补充,有些文本链接较长,只要一部分有效唯一标示就行
- time.sleep(6)
- driver.quit()
-
- #coding=utf-8
- #使用xpath定位
- from selenium import webdriver
- driver = webdriver.Firefox()
- driver.get('http://www.baidu.com')
- #/html/body/div/div[2]/form/div/div[2]/div/input[3]
- #//*[@id="search-key"]
- driver.find_element_by_xpath("/html/body/div[2]/div[1]/div/div[1]/div/form/span[1]/input").send_keys("selenium")
- #通过id定位输入框,html规定,id在文档中必须唯一,类似于我们的身份证号
- driver.find_element_by_xpath('//*[@id="su"]').click()
- driver.quit()
-
- #coding=utf-8
- #使用css定位
- from selenium import webdriver
- driver = webdriver.Firefox()
- driver.get('http://www.baidu.com')
- #html body div#wrapper div#head div.head_wrapper div.s_form div.s_form_wrapper.soutu-env-nomac.soutu-env-index form#form.fm span.bg.s_ipt_wr.quickdelete-wrap input#kw.s_ipt
- driver.find_element_by_css_selector("html body div#wrapper div#head div.head_wrapper div.s_form div.s_form_wrapper.soutu-env-nomac.soutu-env-index form#form.fm span.bg.s_ipt_wr.quickdelete-wrap input#kw.s_ipt").send_keys("selenium")
- #通过id定位输入框,html规定,id在文档中必须唯一,类似于我们的身份证号
- driver.find_element_by_css_selector('html body div#wrapper div#head div.head_wrapper div.s_form div.s_form_wrapper.soutu-env-nomac.soutu-env-index form#form.fm span.bg.s_btn_wr input#su.bg.s_btn').click()
- driver.quit()