web自动化之selenium定位

定位元素的前提:需要定位的元素或它的属性必须唯一

xpath包含绝对路径/和相对路径//

八大元素定位方式,分别是:id、name、class_name、tag_name、link_text、partial_link_text、xpath、css

# id定位
#driver.find_element_by_id("kw").send_keys("周杰伦")
driver.find_element(By.ID,"kw").send_keys("周杰伦") 

# name定位
driver.find_element(By.NAME,"wd").send_keys("周杰伦")

# link_text定位
driver.find_element(By.LINK_TEXT, "新闻").click() 

# partial_link_text定位
driver.find_element(By.PARTIAL_LINK_TEXT, "闻").click() 

# xpath定位(绝对路径'/'(copy Full Xpath,一级一级递进)-绝对路径基本不用、相对路径'//'(非一级一级递进))
#1、相对路径+索引定位
driver.find_element(By.XPATH, "//form/span[1]/input").send_keys("周杰伦") 
#2、相对路径+属性定位 
driver.find_element(By.XPATH, "//input[@autocomplete='off']").send_keys("周杰伦") 
#3、相对路径+通配符定位 #driver.find_element(By.XPATH, "//*[@autocomplete='off']").send_keys("周杰伦") 
driver.find_element(By.XPATH, "//*[@*='off']").send_keys("周杰伦") 
#4、相对路径+部分属性值定位
driver.find_element(By.XPATH, "//*[starts-with(@autocomplete,'of')]").send_keys("周杰伦") 
driver.find_element(By.XPATH, "//*[substring(@autocomplete,2)='ff']").send_keys("周杰伦") 
driver.find_element(By.XPATH, "//*[contains(@autocomplete,'o')]").send_keys("周杰伦") 
#5、相对路径+文本定位 
value = driver.find_element(By.XPATH, "//span[text()='按图片搜索']").get_attribute('class') 
print(value)

你可能感兴趣的:(web自动化,selenium,自动化)