关键词搜索

源码搜索 ×
×

python selenium模块 css定位

发布2021-02-21浏览650次

详情内容

selenium是python的非标准库,使用时需要下载安装

安装命令 pip install selenium

selenium是python的自动化测试模块,可以模拟浏览器的行为

所以在使用之前还要安装浏览器驱动,不同的版本对应不同的驱动文件,这里就不一一赘述了,网上相关的介绍有很多(主要是作者懒)

下载后将驱动文件放到添加过环境变量的路径,以便系统在使用时找到它,这里我把它放在了python的安装目录里

前戏部分就做完了,可以开始了

from selenium import webdriver
import time
# 创建Chrome对象
driver = webdriver.Chrome()  
# 打开浏览器预设网址
driver.get('https://www.baidu.com')  
# 通过id获取搜索框
input_ele = driver.find_element_by_css_selector('#kw')  
# 模拟键盘操作 输入框输入内容
input_ele.send_keys("虞书欣")  
# 模拟鼠标点击操作
driver.find_element_by_css_selector('#su').click()  
# 延迟2秒,等待页面刷新完成
time.sleep(2) 

    在这里插入代码片

    a_ele = driver.find_element_by_css_selector('#content_left div.c-container a')  # 解析页面元素 定位到目标链接
    
    '''
    中间遇到一个问题
    使用id = 1定位时定位不到该节点,
    a_ele = driver.find_element_by_css_selector('#content_left div#1 a')
    报错:
      selenium.common.exceptions.InvalidSelectorException: Message: invalid selector: An invalid or illegal selector was specified
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

    开始想的时页面可能这个元素还没刷新完成,后来我页面延迟5秒后还是报错
    然后我使用class定位,成功定位到该节点,然后获python基础教程取该节点的id,输出为:1
    还是没搞懂为什么不能使用id定位到该节点,不知哪位大捞可以帮忙解读解读

    原因是id为数字不符合python的命名规则…
    ‘’’
    结合实例总结一下:

    driver.find_element_by_css_selector('#content')  查找id为content的节点
    driver.find_element_by_css_selector('.content')  查找class为content的节点
    driver.find_element_by_css_selector('div#conten>a')  
    查找id为content的div的所有子节点为a标签的节点
    driver.find_element_by_css_selector('div#conten a')  
    查找id为content的div的所有子孙节点为a标签的节点
    driver.find_element_by_css_selector('#conten p:nth-child(2)')  
    查找id为content的节点中的其父元素的第二个子元素是p标签的节点,并不是指第二个p标签节点
    driver.find_element_by_css_selector('#conten>p:nth-of-type(2)')  
    查找id为content的节点的第二个p标签节点
    driver.find_element_by_css_selector('.content[name=value]') 
    查找class为content且name属性为value的所有节点
    
    find_element_by_css_selector 返回匹配到的第一个节点
    find_elements_by_css_selector 返回匹配到的所有节点,类型是list
    

      相关技术文章

      点击QQ咨询
      开通会员
      返回顶部
      ×
      微信扫码支付
      微信扫码支付
      确定支付下载
      请使用微信描二维码支付
      ×

      提示信息

      ×

      选择支付方式

      • 微信支付
      • 支付宝付款
      确定支付下载