selenium 是一个用于自动化测试的 [[Python]] 库。
安装
安装 Chrome
- [[macOS]]:
brew install google-chrome
- [[CentOS]] :
yum install https://dl.google.com/linux/direct/google-chrome-stable_current_x86_64.rpm
- [[Ubuntu]] :
wget https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb
sudo dpkg -i google-chrome*.deb
安装完成后通过 googlechrome --version
查看版本号
下载 Chromedriver
- Chromedriver
- 国内镜像:淘宝
自动安装管理
使用
注:下载会使用 googleapis.com 地址,需先修改对应 hosts
配置
- 位置:
/usr/local/bin/chromedriver
[[macOS]] - 配置路径:`webdriver.Chrome(executable_path=‘/usr/local/bin/chromedriver’)
功能参数
日志
定位元素
find_element()
- ID: “id”
- XPATH: “xpath”
- LINK_TEXT: “link text”
- PARTIAL_LINK_TEXT: “partial link text”
- NAME: “name”
- TAG_NAME: “tag name”
- CLASS_NAME: “class name”
- CSS_SELECTOR: “css selector”
单元素
- find_element_by_link_text: 链接
- find_element_by_partial_link_text: 链接(可部分匹配)
- find_element_by_tag_name: 标签名
- find_element_by_css_selector: CSS 选择器
- find_element_by_id: 根据 ID 获取
driver.find_element_by_id('id').get_attribute()
(未测试) - find_element_by_class_name: 根据类名
- find_element_by_name: 根据名称
- find_element_by_xpath
driver.find_element_by_xpath('/html/head/title').text
:获取指定标签下的文本数据(字符串)
多元素
将返回列表
- find_elements_by_name
- find_elements_by_xpath
- find_elements_by_link_text
- find_elements_by_partial_link_text
- find_elements_by_tag_name
- find_elements_by_class_name
- find_elements_by_css_selector
等待
API
driver.page_source
:查看网页源码- click(): 点击
问题
- 法打开“chromedriver”,因为无法验证开发者。
解决:
xattr -d com.apple.quarantine /usr/local/bin/chromedriver