定位元素的前提:需要定位的元素或它的属性必须唯一
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)