获取某一个元素信息要掌握四步操作:
- 获取元素
- 操作元素
- 获取返回结果
- 断言(返回结果与期望结果是否一致
webdriver提供的八种基本元素定位方法:
序号 | 元素名称 | webdriver API |
---|---|---|
1 | id | find_element_by_id() |
2 | name | find_element_by_name() |
3 | class name | find_element_by_class_name() |
4 | tag name | find_element_by_tag_name() |
5 | link text | find_element_by_link_text() |
6 | partial link text | find_element_by_partial_link_text() |
7 | xpath | find_element_by_xpath() |
8 | css selector | find_element_by_css_selector() |
四种元素操作方式:
序号 | 方法 | 说明 |
---|---|---|
1 | clear | 清楚元素内容 |
2 | send_keys | 模拟按键输入 |
3 | click | 点击 |
4 | submit | 提交表单 |
1. find_element_by_id()
from selenium import webdriver
driver = webdriver.Firefox(executable_path= '/Users/Mike/Downloads/geckodriver')
driver.get("https://www.baidu.com")
driver.find_element_by_id("kw").send_keys("python")
2. find_element_by_name()
driver.get("https://www.baidu.com")
driver.find_element_by_name("wd").send_keys("python")
3. find_element_by_class_name()
driver.find_element_by_class_name("s_ipt").send_keys("python")
4. find_element_by_tag_name()
find_element_by_tag_name根据标签的名字定位,这种方法很不使用,因为一个页面的中的标签的名字重复度太早,定位起来太不容易。例如
driver.find_element_by_tag_name("input").send_keys("python")
运行失败。
5. find_element_by_link_text()
driver.find_element_by_link_text("hao123").click()
6. find_element_by_partial_link_text()
有的时候链接文本很长,输入不方便,可以通过partial部分输入查找元素。
driver.find_element_by_partial_link_text("123").click()
7. find_element_by_xpath()
8. find_element_by_css_selector()
xpath和css是比较灵活但是稍微复杂的,下次介绍。