在了解webdriver常用的API之前,先来了解一下webdriver的工作流程:
由上图我们可以看出,当用户操作相应的浏览器时,webdriver会通过浏览器的原生组件,转化Web Service的命令为浏览器的native的调用来完成操作;脚本运行后,会打开指定浏览器,webdriver会将目标浏览器绑定到指定的端口,这样,启动后的浏览器就会接受脚本的命令。
- webdriver提供的八种元素定位的方法:
- id
- name
- class_name
- tag_name
- xpath
- css_selector
- link_text
- partial_link_text
以百度为例,使用这八种定位元素的方法:
首先,打开百度首页,获取到百度搜索框的描述元素的语句,示例如下:
接下来就可以定位元素了:
#coding=utf-8
from selenium import webdriver
import time
#打开指定的浏览器
browser=webdriver.Chrome()
time.sleep(3)
browser.get("http://www.baidu.com")
time.sleep(3)
#在百度搜索框中输入"readinig"并搜索
#browser.find_element_by_id("kw").send_keys("reading")
#browser.find_element_by_name("wd").send_keys("reading")
#browser.find_element_by_class_name("s_ipt").send_keys("reading")
#browser.find_element_by_tag_name("input").send_keys("reading")不可执行 因为input太多
#browser.find_element_by_xpath("//*[@id='kw']").send_keys("reading")
#browser.find_element_by_css_selector("#kw").send_keys("reading")
#在百度浏览器中找到"hao123"并打开此网页
#browser.find_element_by_link_text("hao123").click()
#browser.find_element_by_partial_link_text("hao").click()
time.sleep(3)
browser.find_element_by_id("su").click()
time.sleep(3)
browser.quit()
- 常用的函数:
- find_element_by_元素定位方法(“对应元素名称”) --> 定位元素
- send_keys(“内容”) --> 模拟键盘手动输入内容
- clear() --> 清除当前内容
- quit() --> 退出所有窗口ÿ