元素定位方式
1,id定位 根据id属性定位
2,name定位 根据name属性定位
3,class定位 根据class属性定位---一般用于定位多个元素
4,tag_name(元素名)定位 根据元素名进行定位 --- 一般用于定位多个元素
5,link_text 根据超链接元素的文本进行定位,必须完全匹配
6,partial_link_text 根据超链接元素的文本进行定位,模糊匹配
7,xpath 根据元素的路径进行定位,包括绝对路径和相对路径
8,css定位 根据元素的样式进行定位
from selenium import webdriver
from time import sleep
driver = webdriver.Chrome()
driver.get('https://www.baidu.com/')
1,根据id定位元素
input = driver.find_element_by_id('kw')
2,根据name定位元素
input = driver.find_element_by_name('wd')
3,根据class定位
input = driver.find_element_by_class_name('s_ipt')
4,写入文本
input.send_keys('货拉拉')
5,直接定位"新闻"
driver.find_element_by_link_text('新闻').click() ...直接定位(关键字)...
6,模糊定位“直播” (只输入需要查找的内容中的一部分)
driver.find_element_by_partial_link_text('直').click()
'''定位多个元素'''(定位多个元素时,返回的是第一个值)
find_elements_by_xxx返回的是一个列表,如果没有合适的元素,则返回一个空列表
inputs = driver.find_elements_by_tag_name('input')
print(inputs)
7,xpath 根据元素的路径进行定位,包括绝对路径和相对路径(一个完整的定位语句)
from selenium import webdriver
from time import sleep
try:
driver = webdriver.Chrome()
driver.get('https://www.baidu.com')
driver.find_element_by_xpath('/html/body/div[1]/div[1]/div[5]/div/div/form/span[1]/input').send_keys('货拉拉') (解释:根据位置的绝对路径进行定位,可以直接打开检查的HTML文档查找或者在直接复制路径,相对和绝对都可以)
except Exception as e:
print(e)
finally:
driver.close() (最后完成后关闭页面)
8,css定位 根据元素的样式进行定位
from selenium import webdriver
from time import sleep
'''css定位(cascading style sheet 层叠样式表)'''
try:
driver = webdriver.Chrome()
driver.get('https://www.baidu.com')
driver.find_elements_by_css_selector('#kw').send_keys('货拉拉')
except Exception as e:
print(e)
finally:
sleep(8)
#关闭当前浏览器窗口
# driver.close()
#退出浏览器
driver.quit()
#绝对路径 定位搜索框 以/开始
#/html/body/div[1]/div[1]/div[5]/div/div/form/span[1]/input
# driver.find_element_by_xpath('/html/body/div[1]/div[1]/div[5]/div/div/form/span[1]/input').send_keys('微观学社')
#相对路径,绝对路径以/开始,
#以//开始 @表示属性 *通配符,表示任意元素
# driver.find_element_by_xpath('//*[@id="kw"]').send_keys('微观学社')
# driver.find_element_by_xpath('//*[@id="kw"]').send_keys('微观学社')
# driver.find_element_by_xpath('//[@id="su"]').click()
# driver.find_element_by_xpath('//form[@id="form"]/span[1]/iuput').send_keys('微观学社')
driver.find_element_by_xpath('//form[@id="form"]/span[2]/iuput').send_keys('微观学社')
# driver.find_element_by_xpath('//input[@id="su"]').click()
|