Selenium 查找节点

Selenium 可以驱动浏览器完成各种操作,比如填充表单、模拟点击等。比如,我们想要完成向某个输入框输入文字的操作,总需要知道这个输入框在哪里吧?而 Selenium 提供了一系列查找节点的方法,我们可以用这些方法来获取想要的节点,以便下一步执行一些动作或者提取信息。

如下,我们通过右键点击搜索框 --- 检查,提取淘宝页面中搜索框这个节点:

可以看到 id 、name 、class 等属性,那么在 Python 中可以这样来查找节点:

说明:find_element()默认只能获取匹配到第一个节点,而find_elements()可以获取所有节点,以列表的形式返回

from selenium import webdriver
from selenium.webdriver.common.by import By

browser = webdriver.Chrome()
browser.get("https://www.taobao.com")

input = browser.find_element_by_id("q")                                      # 通过ID属性查找节点
input = browser.find_element_by_name("q")                                    # 通过Name属性查找节点
input = browser.find_element_by_class_name('search-combobox-input-wrap')     # 通过Class属性查找节点
input = browser.find_element_by_css_selector("#q")                           # 通过CSS选择器查找节点
input = browser.find_element_by_xpath("//*[@id='q']")                        # 通过XPath表达式查找节点

input = browser.find_element(By.ID, "q")                                     # 通过ID属性查找节点
input = browser.find_element(By.NAME, "q")                                   # 通过Name属性查找节点
input = browser.find_element(CLASS_NAME, "search-combobox-input-wrap")       # 通过Class属性查找节点
input = browser.find_element(By.CSS_SELECTOR, "q")                           # 通过CSS选择器查找节点
input = browser.find_element(By.XPATH, "//*[@id='q']")                       # 通过XPath表达式查找节点

input = browser.find_elements(By.ID, "q") # 通过ID属性查找多个节点 input = browser.find_elements(By.NAME, "q") # 通过Name属性查找多个节点 input = browser.find_elements(CLASS_NAME, "search-combobox-input-wrap") # 通过Class属性查找多个节点 input = browser.find_elements(By.CSS_SELECTOR, "q") # 通过CSS选择器查找多个节点 input = browser.find_elements(By.XPATH, "//*[@id='q']") # 通过XPath表达式查找多个节点 input.send_keys("iPhone") # 找到节点之后就可以进行下一步操作 input.click() browser.close()

     

原文地址:https://www.cnblogs.com/pzk7788/p/10540375.html