web页面 - 操作dom对象

# 操作浏览器dom的几种方法

 

  from selenium import webdriver  # 导包

  from selenium.webdriver.common.by import By  # 导包

  driver = webdriver.Chrome() # 与浏览器建立连接

  driver.get("https://www.baidu.com") # 访问网址

  driver.fint_element(By.ID, "kw") # 通过元素ID获取dom节点

# 获取dom节点的几种方法

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"

# Xpath定位元素方法:

1).通过标签名[@属性=值]
//i[@class='kw'] # 从i标签中找到class属性是kw的元素
//*[@*='kw'] # 从整个页面,找到 所有属性是kw的
2). 文本匹配 //标签名[text()=值]
// a[text()="搜索"]

3). 包含 //标签名[contains(@属性/text()),值]
//a[contains(@href,'www.baidu.com')] # 从a标签的 href中找到包含"www.baidu.com"
//a[contains(text(),'搜索')] # 找到文本包含搜索的
4). 逻辑运算来组合更多的元素特征。 or\and
//a[text()="搜索" and conatins(@href, "wwww.baidu.com")]

5). 层级定位: //一级元素//二级元素//三级元素。。。。。
//div[@id='值']//i[@class='值']

6). 轴定位, 分析元素之间的关系,页面的结构。
# child 获取子节点
# preceding-silbing 通过元素找到他的兄弟元素
# ancestor 祖先节点
# parent 父节点
# preceding 当前元素节点标签之前的所有节点
# preceding-sibing: 当前节点之前的所有兄弟节点
# following; 当前元素节点下面的所有节点
# following-sibling: 当前元素节点后面的所有兄弟节点
//p[@title='值']/preceding-sibling::p[@class='值'] # 找到p标签title='值'的元素,在从他的上面找到他的兄弟标签class=‘值’的元素
#//div[@class='actions']/child::button[@class='action search'] # 获取所有子节点,找到class为 action search的按钮子节点
# a标签的 href包含链接
//a[contains(@href,'http://tieba.baidu.com/')]
//i[@title="清空"]/preceding-sibling::span
posted @ 2022-02-14 17:16  JiZhaoG  阅读(64)  评论(0)    收藏  举报