day:25 selenium——xpath和css定位详解

一.xpath 定位

格式:dx.find_element_by_xpath(xpath表达式)

两个定位:

1、绝对定位:

特点:a.以单斜杠/开头;

b.从页面根元素(HTML标签)开始,严格按照元素在HTML页面中的位置和顺序向下查找

右键copy full path复制

如:/html/body/div[2]/div[1]/div[5]/div/div/form/span[1]/input

2、相对定位:(我们一般都是用相对定位来定位的)

特点:a.以双斜杠//开头;eg://*[@id="kw"

b.不考虑元素在页面当中的绝对路径和位置;

c.只考虑是否存在符合表达式的元素即可。

3、使用标签名+节点属性定位

//*[@id="kw"]
语法://标签名[@属性名=属性值]

案例:

from selenium import webdriver
import time
dx=webdriver.Chrome()
dx.get("https://www.baidu.com")
time.sleep(2)
dx.find_element_by_xpath('//[@id="form"]/span[1]/input[1]').send_keys("path中层级定位") dx.find_element_by_xpath('//input[@id="kw"]').send_keys("xpath中的标签定位")
dx.find_element_by_xpath('//
[@autocomplete="off" and @name="wd"]').send_keys("xpath的组合属性and定位")是两个及两个以上属性的定位
dx.find_element_by_xpath('//[@autocomplete="off"]').send_keys("xpath的其他定位")
dx.find_element_by_xpath('//
[@class="s_ipt"]').send_keys("xpath的class定位")
[@name="wd"]').send_keys("xpath的name定位")
dx.find_element_by_xpath('//*[@id="kw"]').send_keys("相对定位")
time.sleep(2)
dx.quit()

二.css 定位

dx.find_element_by_css_selector("[id='kw']").send_keys("css中id全称方法")
"#kw" :css中id简写方法
"[class='s_ipt']" :css中class全称方法"
".s_ipt" :css中class简写方法

from selenium import webdriver #导入selenium模块中的webdriver
import time
dx=webdriver.Chrome() #创建一个驱动谷歌浏览器的对象
dx.get("https://www.baidu.com") #通过get打开页面
time.sleep(2)
dx.find_element_by_css_selector("#form>span>input").send_keys("css中层级爷爷级方法")
dx.find_element_by_css_selector("#form > span.bg.s_ipt_wr.new-pmd.quickdelete-wrap>input").send_keys("css中层级父级方法")
dx.find_element_by_css_selector("[autocomplete='off'][class='s_ipt']").send_keys("css中组合属性方法")
dx.find_element_by_css_selector("[autocomplete='off']").send_keys("css中其他属性方法")
dx.find_element_by_css_selector(".s_ipt").send_keys("css中class简写方法")
dx.find_element_by_css_selector("[class='s_ipt']").send_keys("css中class全称方法")
dx.find_element_by_css_selector("[name='wd']").send_keys("css中name全称方法")
dx.find_element_by_css_selector("[id='kw']").send_keys("css中id全称方法")
dx.find_element_by_css_selector("#kw").send_keys("css中id简写方法")
time.sleep(20)
dx.close()

posted @ 2025-03-19 20:54  君庭  阅读(123)  评论(0)    收藏  举报