Python + Selenium 八种元素定位方法

【1】介绍:WebDriver 属于 Selenium 体系中设计出来操作浏览器的一套API,支持多种编程语言

【2】WebDriver 提供了八种元素定位方法,在Python语言中,所定位的方法如下:
Python + Selenium 八种元素定位方法

【3】id 定位

from selenium import webdriver

driver = webdriver.Chrome()

driver.get("http://baidu.com")
driver.find_element_by_id("kw").send_keys("selenium 配置")
driver.find_element_by_id("su").submit()
print("成功根据百度搜索框的ID搜索关键字")

driver.quit()

【4】name 定位

from selenium import webdriver

driver = webdriver.Chrome()
driver.get("http://baidu.com")

driver.find_element_by_name("wd")
print("我通过name方法定位到百度页的搜索框")

driver.quit()

【5】class 定位

from selenium import webdriver

driver = webdriver.Chrome()

driver.get("http://baidu.com")
driver.find_element_by_class_name("s_ipt").send_keys("自动化测试")
driver.find_element_by_class_name("btn self-btn bg s_btn").click()

driver.quit()

【6】tag name 定位

from selenium import webdriver

driver = webdriver.Chrome()

driver.get("http://baidu.com")
driver.find_element_by_tag_name("input")

driver.quit()

【7】link text 定位

from selenium import webdriver

driver = webdriver.Chrome()
driver.maximize_window()
driver.implicitly_wait(1)

driver.get("http://baidu.com")
try:
    driver.find_element_by_link_text("新闻").click()
    print("test pass:element found by link text")
except Exception as e:
        print("Exception found",format(e))

driver.quit()

【8】partial link text 定位

from selenium import webdriver

driver = webdriver.Chrome()
driver.maximize_window()
driver.implicitly_wait(1)

driver.get("http://baidu.com")
try:
    driver.find_element_by_partial_link_text("新").click()
    print("test pass:element found by link text")
except Exception as e:
        print("Exception found",format(e))

driver.quit()

【9】XPath 定位

Chrome 推荐一款好用的插件:XPath Helper ,可方便定位XPath 跟CSS Selector 
from selenium import webdriver

driver = webdriver.Chrome()
driver.maximize_window()
driver.implicitly_wait(1)

driver.get("http://baidu.com")
try:
    driver.find_element_by_xpath("//*[@id='kw']").send_keys("XPath插件安装")
    driver.find_element_by_xpath("//*[@id='su']").click()
    driver.implicitly_wait(20)
    print("test pass:element found by link text")
except Exception as e:
    print("Exception found", format(e))

driver.quit()

【10】css selector 定位

from selenium import webdriver

driver = webdriver.Chrome()
driver.maximize_window()
driver.implicitly_wait(1)

driver.get("http://baidu.com")
try:
    driver.find_element_by_css_selector("#kw").send_keys("XPath插件安装")
    driver.find_element_by_css_selector("#su").click()
    print("test pass:element found by link text")
except Exception as e:
    print("Exception found", format(e))

driver.quit()