''' 时间:2018/12/04 功能:xpath/调试/table 目录: 一: xpath 1 绝对路径 2 元素属性 3 标签 + 元素 4 路径 + 元素 5 逻辑 + 元素 6 文本 7 子节点 - 索引 二: 调试 1 firefox 2 chrmoe 三: table 1 输出内容 四: 错误 1 定位语法
五: 思考
'''
一: xpath
1 绝对路径
2 元素属性
id name class 其他
1 : id定位。
1 : name定位。
1 : class定位。
1 : 其他元素定位。
3 标签 + 元素
4 路径 + 元素
1 : 定位id。
5 逻辑 + 元素
6 文本
7 子节点 - 索引
二: 调试
1 firefox
2 chrmoe
1 : 第1个条件定位,是一处符合条件。
2 : 第2个条件定位,是两处符合条件。
三: table
1 输出内容
<!DOCTYPE html> <meta charset="UTF-8"> <!-- for HTML5 --> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <html> <head> <title>Table测试</title> </head> <body> <table border="1" id="myTable"> <tr> <th>国家</th> <th>城市</th> <th>地区</th> </tr> <tr> <td>中国</td> <td>北京</td> <td>海淀</td> </tr> <tr> <td>日本</td> <td>东京</td> <td>富士山</td> </tr> </table> </body> </html>
1 : 保存到桌面,命名为 table.html。
1 : 查看页面显示。
from selenium import webdriver import time driver = webdriver.Firefox() driver.get("file:///C:/Users/Administrator/Desktop/table.html") # 获取句柄 - 当前窗口 time.sleep(1) element = driver.find_element_by_xpath(".//*[@id='myTable']/tbody/tr[2]/td[1]") print(element.text) element = driver.find_element_by_xpath(".//*[@id='myTable']/tbody/tr[2]/td[3]") print(element.text)
中国
海淀
四: 错误
1 定位语法
正确: $x(".//*[text() = "新闻"]")
错误: $x(".//*[text() = '新闻']")
FirePath插件缺点: 使用XPath定位,只定位id,id动态定位失效。
五: 思考
xpath三个因素: 路径、元素、逻辑