selenium学习----CSS selector

 CSS Selector选择web页面的元素

CSS是用来对web页面进行渲染的,因此必然涉及到web页面上某一元素的选择,比如页面某些内容显示效果,可以讲 CSS Selector 语法 天生就是浏览器用来选择元素的,selenium自然就可以使用它用在自动化中,去选择要操作的元素了。

最简单的方法是在浏览器中按F12, 选择想选择的内容,右键复制CSS_SELECTOR

 

选择单个元素的方法:

find_element(By.CSS_SELECTOR, CSS Selector参数)

选择多个元素的方法:返回一个列表

find_elements(By.CSS_SELECTOR, CSS Selector参数)

选择方法和之前通过ID,CLASS_NAME,TAG_NAME 是一样的

CSS_SELECTOR方法选择class:在1处那加个‘.’

#CSS_SELECTOR 选择class属性:在前面加上一个‘.’
element = wd.find_element(By.CSS_SELECTOR, '.nav-search-input' ) #----1
element.send_keys('考研\n')

elements = wd.find_elements(By.CSS_SELECTOR, '.channel-link')
for element in elements:
    print(element.get_attribute('href'))
wd.quit()

CSS_SELECTOR方法选择ID:在前面加个‘#’

from selenium import webdriver
from selenium.webdriver.common.by import By

#创建一个webdriver对象
wd = webdriver.Chrome()
wd.implicitly_wait(10)

wd.get('https://www.bing.com')

#使用CSS_SELECTOR根据ID选择元素:在前面加个‘#’
element = wd.find_element(By.CSS_SELECTOR, '#sb_form_q')
element.send_keys('matepad11\n')

CSS_SELECTOR方法选择TAG名:直接在‘’中输入tag标签名字

elements = wd.find_elements(By.CSS_SELECTOR, 'div')
<a href="http://www.miitbeian.gov.cn">苏ICP备88885574号</a>

 css 选择器支持通过任何属性来选择元素,语法是用一个方括号 [] 。

比如要选择上面的a元素,就可以使用 [href="http://www.miitbeian.gov.cn"] 。

这个表达式的意思是,选择 属性href值为 http://www.miitbeian.gov.cn 的元素。

要选择a节点,里面的href属性包含了 miitbeian 字符串,就可以这样写

a[href*="miitbeian"]

要选择a节点,里面的href属性以 http 开头 ,就可以这样写

a[href^="http"]

要选择a节点,里面的href属性以 gov.cn 结尾 ,就可以这样写

a[href$="gov.cn"]

CSS 选择器 可以指定 选择的元素要 同时具有多个属性的限制,像这样

 div[class=misc][ctype=gun]

CSS_SELECTOR可以使用次序筛选:父节点的第几个

span:nth-child(2)  span元素并且是在父节点的第二个位置

p:nth-last-child(1)  P元素并且是倒数第一个

里面可以是数字也可以是“odd”奇数;“even”偶数

***选择第一个span类型的元素: span:nth-of-type(1)       span:nth-last-of-type(1)

#CSS_SELECTOR选择: nth-child(n) 

from selenium import webdriver
from selenium.webdriver.common.by import By

#创建一个webdriver对象
wd = webdriver.Chrome()
wd.implicitly_wait(5)

#访问网站
wd.get('https://cdn2.byhy.net/files/selenium/sample1b.html')

spans = wd.find_elements(By.CSS_SELECTOR, 'span:nth-child(2)')
for span in spans:
    print(span.get_attribute('innerHTML'))
wd.quit()
  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Python Selenium是一个自动化测试工具,它可以模拟用户在浏览器中的操作,例如点击、输入、提交表单等。它可以用于测试Web应用程序的功能和性能,也可以用于爬取网页数据。 el-select是一个基于Element UI的下拉选择框组件,它提供了多种选择方式,例如单选、多选、远程搜索等。在使用Python Selenium进行自动化测试时,我们可以使用Selenium的API来模拟用户在el-select组件中的选择操作。 具体来说,我们可以使用Selenium的find_element_by_xpath或find_element_by_css_selector等方法来定位el-select组件,然后使用Selenium的API来模拟用户在el-select组件中的选择操作。例如,我们可以使用Selenium的click方法来点击el-select组件,然后使用Selenium的find_element_by_xpath或find_element_by_css_selector等方法来定位下拉选项,最后使用Selenium的click方法来选择下拉选项。 下面是一个使用Python Selenium模拟选择el-select组件的示例代码: ```python from selenium import webdriver from selenium.webdriver.common.by import By from selenium.webdriver.support.ui import WebDriverWait from selenium.webdriver.support import expected_conditions as EC # 启动浏览器 driver = webdriver.Chrome() # 打开网页 driver.get("https://element.eleme.cn/#/zh-CN/component/select") # 等待el-select组件加载完成 el_select = WebDriverWait(driver, 10).until( EC.presence_of_element_located((By.XPATH, "//div[@class='el-select']")) ) # 点击el-select组件 el_select.click() # 等待下拉选项加载完成 el_options = WebDriverWait(driver, 10).until( EC.presence_of_all_elements_located((By.XPATH, "//ul[@class='el-scrollbar__view el-select-dropdown__list']/li")) ) # 选择第一个下拉选项 el_options[0].click() # 关闭浏览器 driver.quit() ```

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值