029、css定位 03、模糊匹配

 

一、css模糊匹配 

 

1、 属性匹配

E[att^="val"]   选择 att 属性值以 "val" 开头的所有元素
E[att$="val"]   选择 att 属性值以 "val"结尾的所有元素
E[att*="val"]   选择 att 属性值中包含子串 "val"的所有元素

比如:'a[class*="index-"]' ,意思是: class属性包含  "index-"  的所有 a 标签元素 ;

代码如下:

# -*- coding:utf-8 -*-
# Author:  Sky
# Email:   2780619724@qq.com
# Time:    2021/8/20 17:04
# Project: day01
# Module:  ch_03.py
# Environment: Python3.8.6 , Selenium3 环境 ( 3.141.0 版本)
# Environment: Chrome ( 92.0.4515.131, 正式版本) + chromedriver(92.0.4515.107版本)

from selenium import webdriver
import time

driver = webdriver.Chrome()
driver.get("http://49.235.92.12:8200/users/login/")
driver.maximize_window()

# <a class="index-font" href="/">回到首页</a>

# class^  class属性以xxx开头 的a
# driver.find_element_by_css_selector('a[class^="index-l"]').click()

# # class$  class属性以xxx结尾  的a
# driver.find_element_by_css_selector('a[class$="-font"]').click()

# # class*  class属性包含xxx 的a
driver.find_element_by_css_selector('a[class*="index-"]').click()


# print(driver.find_element_by_css_selector('a[class*="index-"]'))
# 如果已经开启了一个driver,再打印时报错:
# selenium.common.exceptions.NoSuchElementException: Message: no such element: Unable to locate element: {"method":"css selector","selector":"a[class*="index-"]"}
#   (Session info: chrome=92.0.4515.131)
# 打印结果:<selenium.webdriver.remote.webelement.WebElement (session="593da7db4a0ef136ca779d0847de0488", element="3a7b4fde-cf76-48fa-a0fb-a159a6c20d52")>


time.sleep(3)
driver.quit()
View Code

 

2、 css模糊匹配 

  需注意的是 E:contains(‘xxx’) 内容中包含xxx的E元素 这种语法selenium不支持 ,

  但是在 chrome 的F12 调试窗口中,能正确输出。

 

代码如下:

# -*- coding:utf-8 -*-
# Author:  Sky
# Email:   2780619724@qq.com
# Time:    2021/8/20 17:04
# Project: day01
# Module:  ch_03.py
# Environment: Python3.8.6 , Selenium3 环境 ( 3.141.0 版本)
# Environment: Chrome ( 92.0.4515.131, 正式版本) + chromedriver(92.0.4515.107版本)

from selenium import webdriver
import time

driver = webdriver.Chrome()
driver.get("http://49.235.92.12:8200/users/login/")
driver.maximize_window()
time.sleep(3)

driver.find_element_by_css_selector("a:contains('回到首页')").click()
# selenium 不支持这种模糊匹配,报错:Message: invalid selector: An invalid or illegal selector was specified
# 但是在 chrome 的F12 调试窗口中,能正确输出。

time.sleep(3)
driver.quit()
View Code

执行,报错:

 

 

posted @ 2021-08-20 17:35  空-山-新-雨  阅读(360)  评论(0)    收藏  举报