4.Xpath 、css定位

安装Xpath:

组件中添加:

 

 

Xpath:XML path简称,XML的实现

XML:一种标记语言,配置、数据存储功能

Xpath策略:

    1.路径:

            相对:当前的目录、

            绝对:包含跟目录

    2.元素

    3.层级与属性结合

    4.属性与逻辑结合

 

.find_element_by_xpath()

 

路径:

绝对路径:

  从最外层开始,一级一级往下

相对路径: //*[@id="kw"]  查找所有id属性,id属性为kw

    Xpath:路径中属性以@修饰

 

1.使用xpath:find_element_by_xpath("//*[@id='input-1']") 

from time import sleep

from selenium import webdriver
driver=webdriver.Firefox()
url="http://11.111.11.1:3110/login/index"
driver.get(url)

driver.find_element_by_xpath("//*[@id='input-1']").send_keys("admin")
sleep(3)

driver.quit()

运行结果:

 

 

2.层级与属性:

要找的元素没有属性,父级

 

延伸:

1. //*[text()="文本内容"]

# coding=gbk
from time import sleep
from selenium import webdriver
driver=webdriver.Firefox()
url="https://www.baidu.com"
driver.get(url)

driver.find_element_by_xpath("//*[text()='新闻']").click()

sleep(3)

driver.quit()

运行结果:

 

2.//*[starts-with(@attribute,"文本内容")]   以内容开始的元素

3.//*[contains(@attribute,"文本内容")]     包含有内容的元素

 

css定位:

 

比Xpath定位速度快

.find_elements_by_css_selector()

 

定位方式:

  • id选择器

    • 以#开始:

    • driver.find_element_by_css_selector("#kw").send_keys("admin")

  • class选择器

    • 以.开始:

    • driver.find_element_by_css_selector(".s_ipt").send_keys("admin")

  • 元素选择器

    • 根据标签名称选择

  • 属性选择器

    • [属性名=属性值]

    • [type="name"]

  • 层级选择器

    • 元素父子关系选择:

    • element>element

    • p>input[class="cvalue"]

    • p[id="name"]>input

 

开头:^

    id^="a" 以a开头的id

结尾:$

    id$="a" 以a结尾的id

包含:*

    id*="a" 包含a的id

 

By.CSS_SELECTOR

driver.find_element(By.CSS_SELECTOR,"#kw").send_keys("admin")

# coding=gbk
from selenium.webdriver.common import by
from time import sleep
from selenium import webdriver
from selenium.webdriver.common.by import By

driver=webdriver.Firefox()
driver.get("https://www.baidu.com")
driver.find_element(By.CSS_SELECTOR,"#kw").send_keys("admin")

sleep(3)
driver.quit()

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值