xpath定位.py

from selenium import webdriver
driver = webdriver.Chrome()
driver.maximize_window()
ele = driver.get("http://www.baidu.com")
#id定位输入框和百度一下:
driver.find_element_by_id("kw")
driver.find_element_by_id("su")

#name定位输入框:
driver.find_element_by_name("wd")

#class定位输入框和百度一下:
driver.find_element_by_class_name("s_ipt")
driver.find_element_by_class_name("bg s_btn")

#tag定位输入框和百度一下:
driver.find_element_by_tag_name("input")
driver.find_element_by_tag_name("input")

#link定位文本链接新闻、hao123、地图、视频:
driver.find_element_by_link_text("新闻")
driver.find_element_by_link_text("hao123")
driver.find_element_by_link_text("地图")
driver.find_element_by_link_text("视频")

#partial link模糊定位文本链接新闻、hao123、地图、视频:
driver.find_element_by_partial_link_text("新")
driver.find_element_by_partial_link_text("hao")
driver.find_element_by_partial_link_text("地")
driver.find_element_by_partial_link_text("视")

#xpath绝对路径定位输入框和百度一下:
driver.find_element_by_xpath("/html/body/div[1]/div[1]/div/div[1]/div/form/span[1]/input")
driver.find_element_by_xpath("/html/body/div[1]/div[1]/div/div[1]/div/form/span[2]/input")

#利用元素属性定位输入框和百度一下、//表示当前页面某个目录下、input表示定位元素的标签名、[@id='kw']表示这个元素的id属性值等于kw:
driver.find_element_by_xpath("//input[@id='kw']")
driver.find_element_by_xpath("//input[@id='su']")

#如果不想指定标签名、也可以用*星号代替、
driver.find_element_by_xpath("//*[@id='kw']")
driver.find_element_by_xpath("//*[@id='su']")

#层级与属性结合、如果一个元素本身没有可以唯一标识这个元素的属性值、那么就可以找其上一级元素、如果上一级有可以唯一标识属性的值也可以拿来使用:

#使用逻辑运算符、如果一个属性不能区分一个元素、可以使用逻辑运算符连接多个属性查找元素
driver.find_element_by_xpath("//input[@id='kw' and @class='su']/span/input")
posted @ 2020-01-18 23:32  干it的小张  阅读(171)  评论(0编辑  收藏  举报