Selenium 基本操作
配置环境
- python
- ChromeDriver 下载地址
- selenium库
准备工作
- 安装python(略)
- 安装selenium库
pip install selenium
- 安装Chrome
- 下载 ChromeDriver 对应版本, 并将ChromeDriver 放到py文件目录下
定位元素
- 返回一个匹配元素
find_element_by_id() # 通过元素的ID属性定位元素
find_element_by_name() # 通过元素的name属性定位到该元素
find_element_by_class_name() # 通过元素的class属性定位到该元素
find_element_by_tag_name() # <div>,<span>等标签定位到该元素
find_element_by_link_text() # 通过<a>等链接元素的文本定位到该元素
find_element_by_partial_link_text()
find_element_by_xpath() # 通过XPath定位到该元素,建议掌握
find_element_by_css_selector() # 通过css选择器定位元素
以上操作,见名知意,都是返回第一个匹配的WebElement元素
- 返回一个匹配元素列表
find_elements_by_name() # 返回所有具有相同name属性的元素列表
find_elements_by_class_name() # 返回所有具有相同class_name属性的元素列表
find_elements_by_tag_name() # <div>,<span>返回所有具有相同标签的元素列表
find_elements_by_link_text() # 通过<a>返回所有具有相同文本描述的元素列表
find_elements_by_partial_link_text()
find_elements_by_xpath() # 返回所有具有相同Xpath属性的元素
find_elements_by_css_selector() # 返回所有具有相同css_selector的元素
定位元素操作,一旦执行失败(即查找不到), 就会抛出异常因此必须使用
try: .. except: ...
机制避免错误的行为影响程序继续进行
WebDriver 的一些常用操作:
实例化一个 WebDriver对象
driver = webdriver.Chrome()
千万不要忘记()
driver.curren_url : 获取当前加载页面的 URL
driver.close() : 关闭当前窗口, 如果当前窗口是最后一个窗口, 浏览器将关闭
driver.quit() : 关闭所有窗口并停止 ChromeDriver 的执行
driver.add_cookie(cookie_dict) : 为当前会话添加 cookie
driver.get_cookie(name) : 得到执行 cookie
driver.get_cookies() : 得到所有的 cookie
driver.delete_all_cookies() : 删除当前会话的所有cookie
driver.delete_cookie(name) : 删除指定 cookie
driver.back() : 相当于浏览器的后退历史记录
driver.forward() : 相当于浏览器的前进历史记录
driver.execute_script(script, *args) : 同步执行 js 脚本
driver.execute_async_script(script, *args) : 异步执行 js 脚本
driver.get(url) : 在当前窗口加载 url
driver.refresh() : 刷新当前页面
driver.current_window_handle : 当前窗口的 handle, 相当于一个指针一样的东西, 用来指向当前窗口
driver.window_handles : 当前浏览器中的已经打开的所有窗口, 是一个 list
driver.switch_to_window(window_handle) : 切换 window_handle 指向的窗口
driver.title : 当前页面的 title
driver.name : 当前浏览器的名字
WebElement 的一些常用操作
通过元素定位获取一个WebElement元素
webEle = find_element_by_id('password')
webEle.clear() : 清楚元素的内容, 假如这个元素是一个文本元素
webEle.click() : 点击当前元素
webEle,is_displayed() : 当前元素是否可见
webEle.is_enabled() : 当前元素是否禁止, 比如经常会禁用一些元素的点击
webEle.is_selected() : 当前元素是否选中, 文本输入框的内容
webEle.send_keys(*value) : 向当前元素模拟键盘事件
webEle.submit() : 提交表单
webEle.tag_name : 当前元素的标签名
webEle.text : 当前元素的内容, 注意是没有(括号)的
webEle.get_attribute(name) : 获取当前元素执行属性的值