selenium使用
初始化
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.chrome.service import Service
from time import sleep
# 实例化一款浏览器
print('正在启动浏览器...')
service = Service('./chromedriver')
service.start()
# 设置尺寸
# driver.set_window_size(1512, 887)
# 对指定的url发起请求
print('正在打开网页...')
driver.get('https://www.baidu.com/')
八大元素定位
- id
- xpath
-
- 相对路径
-
-
- // 从根路径下开始查找
-
-
-
- //* 查找所有标签
-
-
-
- //div 查找所有div标签
-
-
-
- //div[@id=‘xxx’ and @name=‘xxx’] 查找id为xxx的div标签
-
-
-
- //*[text()=‘xxx’] 查找所有文本为xxx的标签,可以与@关联,@为关联搜索属性
-
-
-
- 常用函数:contains查找xxx属性为xxx的标签, 模糊查找,也可以使用文本text()作为搜索条件,例://*[contains(@xxx, ‘xxx’)]
-
-
- 绝对路径
- line text
- partial link text
- name
- tag name
- css name
- css selector
-
- 伪元素定位 ::before:: ::after:: ::first-line:: ::first-letter:: ::selection::
find_element() 单数
find_elements() 复数
# id定位
driver.find_element_by_id('kw')
driver.find_element('id', value='kw')
# xpath定位
driver.find_element_by_xpath('//*[@id="kw"]')
driver.find_element('xpath', value='//*[@id="kw"]')
# line text定位
driver.find_element_by_link_text('百度一下')
driver.find_element('line text', value='百度一下')
# partial link text定位
driver.find_element_by_partial_link_text('百度')
driver.find_element('partial link text', valuxwe='百度一下')
# name定位
driver.find_element_by_name('wd')
driver.find_element('name', value='wd')
# tag name定位
driver.find_element_by_tag_name('input')
driver.find_element('tag name', value='input')
# css name定位
driver.find_element_by_css_selector('#kw')
driver.find_element('css name', value='#kw')
# css selector定位
driver.find_element_by_css_selector('input[name="wd"]')
driver.find_element('css selector', value='input[name="wd"]')