一、安装与配置
1、安装Python3.6。
2、安装 pip install selenium。
2、安装对应浏览器版本的ChromeDriver驱动。可以将chromedriver.exe放到我们的项目目录中。
二、运行流程
三、准备工作
1、为了验证各种功能、情况,需要自己写一个HTML页面用于调试,HTML代码可在此链接https://blog.csdn.net/l15767016983/article/details/122998171找到。
driver.get(net_url)获取一个localhost地址需要在pycharm设置勾选一下“允许未签名的请求”。
四、简单使用
1、启动浏览器
from selenium import webdriver
if __name__ == '__main__':
option = webdriver.ChromeOptions()
# option.add_argument("--headless")#无界面运行
option.add_argument("--start-maximized")#最大化运行
driver = webdriver.Chrome(executable_path="chromedriver", options=option)
net_url = 'http://localhost:63342/PycharmProjects/html_test/html_t.html?_ijt=7q5u4fs2ir2t0p9agurlv4hhht'
driver.get(net_url)
2、常用的启动项
启动参数 | 作用 |
window-size=长,宽 | 设置浏览器分辨率 |
headless | 无界面运行 |
start-maximized | 最大化运行 |
更多的详细参数解释: List of Chromium Command Line Switches « Peter Beverloo
3、selenium 定位元素一共有八种方法。需要导入from selenium.webdriver.common.by import By
(1)find_element(By.ID, "div_id")#通过元素ID找元素,ID唯一。
div_id=driver.find_element(By.ID, "div_id")#通过ID找元素
print(div_id)
(2)find_elements(By.CLASS_NAME, "div_class") # 通过CLASS_NAME找元素,不唯一。
div_class=driver.find_elements(By.CLASS_NAME, "div_class") # 通过CLASS_NAME找元素,CLASS_NAME不唯一
print(div_class)
(3)find_elements(By.CSS_SELECTOR, "div[title*=div]")# 通过CSS_SELECTOR找元素,快速语法简洁,功能强大,但不唯一。
# div_class=driver.find_element(By.CSS_SELECTOR, ".div_class") #选中class="div_class"的元素
# div_id=driver.find_element(By.CSS_SELECTOR, "#div_id") #选中id="div_id"的元素
# all=driver.find_elements(By.CSS_SELECTOR, "*") #选中所有元素
# p=driver.find_elements(By.CSS_SELECTOR, "p") #选中所有p标签
# div_p=driver.find_elements(By.CSS_SELECTOR, "div,p") #选中所有div和p标签
# div_p=driver.find_elements(By.CSS_SELECTOR, "div p") #选中所有div里面的p标签
# div_p=driver.find_elements(By.CSS_SELECTOR, "div>p") #选中父元素为div的所有p标签
# target=driver.find_elements(By.CSS_SELECTOR, "[target]") #选中带有target属性的所有标签
# target=driver.find_elements(By.CSS_SELECTOR, "[target=_blank]") #选中带有属性target=_blank的所有标签
# div_title=driver.find_elements(By.CSS_SELECTOR, "[title^=div]") #选中带有属性title以div开头的所有标签
# div_title=driver.find_elements(By.CSS_SELECTOR, "[title$=title]") #选中带有属性title以title结尾的所有标签
# div_title=driver.find_elements(By.CSS_SELECTOR, "div[title^=div]") #选中带有属性title以div开头的所有div标签
div_title=driver.find_elements(By.CSS_SELECTOR, "div[title*=div]") #选中带有属性title包含div的所有div标签
print(div_title,len(div_title))
(4)find_elements(By.LINK_TEXT, "a链接标签") # 通过LINK_TEXT找元素,不