id查找
find_element_by_id()
name查找
find_element_by_name()
class查找
find_element_by_class_name()
例子
rows = browser.find_elements_by_class_name("el-table__row")
link查找
find_element_by_link_text()
partial link查找
find_element_by_partial_link_text()
tag查找
find_element_by_tag_name()
css查找
find_element_by_css_selector()
查找一组
取下标定位
driver.find_elements_by_class_name("j-inputtext")[0].send_keys("yoyo")
driver.find_elements_by_class_name("j-inputtext")[1].send_keys("12333")
class含有空格时解决方法
在实际进行元素定位时,经常发现class name是有多个class组合的复合类,中间以空格隔开。如果直接进行定位会出现报错,可以通过以下方式处理:
- class属性唯一但是有空格,选择空格两边唯一的那一个
- 若空格隔开的class不唯一可以通过索引进行定位
self.driver.find_elements_by_class_name(‘table-dragColumn’)[0].click() - 通过css方法进行定位(空格以‘.’代替)
#前面加(.)空格地方用点(.)来代替
self.driver.find_element_by_css_selector('.dtb-style-1.table-dragColumns').click()
#包含整个类
self.driver.find_element_by_css_selector('class="dtb-style-1 table-dragColumns').click()
例子
#coding=utf-8
from selenium import webdriver
browser=webdriver.Firefox()
browser.get("http://www.baidu.com")
#########百度输入框的定位方式##########
#通过id方式定位
browser.find_element_by_id("kw").send_keys("selenium")
#通过name方式定位
browser.find_element_by_name("wd").send_keys("selenium")
#通过tag name方式定位
browser.find_element_by_tag_name("input").send_keys("selenium")
#通过class name方式定位
browser.find_element_by_class_name("s_ipt").send_keys("selenium")
#通过CSS方式定位
browser.find_element_by_css_selector("#kw").send_keys("selenium")
#通过xpath方式定位
browser.find_element_by_xpath("//input[@id='kw']").send_keys("selenium")
############################################
browser.find_element_by_id("su").click()
time.sleep(3)
browser.quit()