引入
import time
from selenium import webdriver
定义一个driver的变量,用来接收实例化后的浏览器
driver = webdriver.Chrome()
使用get方法,访问网址
driver.get(‘https://www.bilibili.com/’)
time.sleep(2)
元素定位方式
通过id定位,
driver = webdriver.Chrome()By.ID
窗口最大化
driver.maximize_window()
driver.get(“https://www.baidu.com/”)
driver.find_element(By.ID, “kw”).send_keys(“selenium”)
driver.find_element(By.ID, “su”).click()
sleep(3)
通过类名定位,
driver = webdriver.Chrome()By.CLASS_NAME
窗口最大化
driver.maximize_window()
driver.get(“https://www.bilibili.com/”)
只获取class属性的第一个元素
driver.find_element(By.CLASS_NAME,’nav-search-input’).send_keys(“2024新年快乐”)
driver.find_element(By.CLASS_NAME,’channel-link’).click()
获取class属性的所有元素
driver.find_elements(By.CLASS_NAME,’channel-link’)[4].click()
for ele in driver.find_elements(By.CLASS_NAME,’channel-link’):
print(ele.text)
错误用法
driver.find_element(By.CLASS_NAME,’icon-bg icon-bg__channel’).click()
sleep(3)
通过标签名定位,
driver = webdriver.Chrome()By.TAG_NAME
窗口最大化
driver.maximize_window()
driver.get(“https://www.bilibili.com/”)
driver.find_element(By.TAG_NAME, “input”).send_keys(“学习selenium”)
不推荐
driver.find_elements(By.TAG_NAME, “input”)[50].click()
通过名称定位,
driver = webdriver.Chrome()By.NAME
driver.get(‘https://www.baidu.com’)
只获取属性的第一个元素
driver.find_element(By.NAME, ‘wd’).send_keys(“软件测试老白”)
获取属性的所有元素
driver.find_elements(By.NAME, ‘wd’)[0].send_keys(“软件测试老白”)
通过链接文本定位,
driver = webdriver.Chrome()By.LINK_TEXT
driver.get(‘https://www.baidu.com’)
driver.find_element(By.LINK_TEXT, ‘新闻’).click()
通过链接部分文本定位,
driver = webdriver.Chrome()By.PARTIAL_LINK_TEXT
driver.get(‘https://www.baidu.com’)
driver.find_element(By.PARTIAL_LINK_TEXT, ‘闻’).click()
通过css_selector定位,By.CSS_SELECTOR
当一个元素无法直接定位,也就是没有id,name等确定标识,这个时候我们需要考虑使用css selector定位器。
它是一种通过CSS样式选择器来定位元素的方法
CSS常用汇总
选择器 | 格式 | 示例 | 示例说明 |
标签选择器 | html标签 | input | 选择所有<input>元素 |
ID选择器 | #id属性值 | #kw | 选择所有id=’kw’的元素 |
类选择器 | .class属性值 | .nav-search-input | 选择所有class=’nav-search-input’的元素 |
属性选择器1 | [属性名] | [name=”wd”] | 选择所有name等于”wd”的元素 |
组合选择器 | 标签加属性描述 | input.s_ipt | 选择所有class=’_ipt’的<input>元素 |
父子关系 | 元素1>元素2 | div>a | 选择所有父级是<div>的<a>元素 |
后代关系 | 元素1 元素2 | div a | 选择<div>中的所有<a>元素 |
第一子元素 | :first-child | a:first-child | 选择所有<a>元素且该元素是其父级的第一个元素 |
最后一个元素 | :last-child | a:last-child | 选择所有<a>元素且该元素是其父级的最后一个元素 |
顺序选择器 | :nth-child(n) | a:nth-child(2) | 选择所有<a>元素且该元素是其父级的第二个子元素 |