python selenium3 查找元素 作者:马育民 • 2021-07-16 10:51 • 阅读:10246 # 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() ``` 原文出处:http://www.malaoshi.top/show_1IX1V4JT23UR.html