python实战004:Selenium获取源码中的DOM元素

 时间:2024-10-13 17:01:08

1、用selenium查找元素是相当方便的事情的,selenium定义了很多查找DOM元素的方法,通常用的比较多的是通过id选择器和CSS选择器,当然还有更多的方法:

python实战004:Selenium获取源码中的DOM元素

2、 在获取DOM元素之前我们需要先查看下网页源码,看看这个标签是用什么方法定义的,按F12打开“开发者工具”窗口,用元素选择器点中“登录”标签即可定位到该标签的源码位置,在源码中我们可以看到name="tj_login" class="lb"属性,我们先确认下这两个属性是否存在多个,如果都是唯一的,随便选个即可。

python实战004:Selenium获取源码中的DOM元素

3、那么我们该如何来选择这个元素呢,这里我们可以使用find_element_by_css_selector方法来获取DOM元素,这里我们用name="tj_login" class="lb"两个属性分别获取下该元素,这时我们看到的就是弹出二维码登录的页面。

python实战004:Selenium获取源码中的DOM元素python实战004:Selenium获取源码中的DOM元素

4、接着我们需要继续点击“用户名登录”标签,让窗口跳转到用户名登录页面,同样我们要先找到该标签的DOM元素, 按F12打开“开发者工具”窗口,用元素选择器点中“用户名登录”标签即可定位到该标签的源码位置,在源码中我们可以看到:<p class="tang-pass-footerBarULogin pass-link" title="用户名登录" data-type="normal" id="TANGRAM__PSP_10__footerULoginBtn">用户名登录</p>

python实战004:Selenium获取源码中的DOM元素

5、这里我们看到,代码中定义了ID属性id="TANGRAM__PSP_10__footerULoginBtn",这样我们就可以直接使用find_element_by_id来定位到该标签:

python实战004:Selenium获取源码中的DOM元素python实战004:Selenium获取源码中的DOM元素

6、这里遇到个问题,当我捂执涡扔使用find_element_by_css_selector方法获取标签时遇到点问题,在查找DOM元素时已经确认了该属性是唯一的,按理说直接指定该元素应该就可以定位到了,可以当我使用 find_element_by_css_selector(‘lb’)时报错了:没有这样的元素:找不到元素:“method”:“css selector”,“selector”:“lb”(翻译:没有这样的元素:找不到元素:“method”:“css selector”,“selector”:“lb”)

python实战004:Selenium获取源码中的DOM元素

7、我用获取元素信息的方法is_displayed()查看'.lb'是否存在,打印element判断元素是否是存在的,返回true,说明是存在的,false表示不存在,这里返回false,说明没找到'.lb'。

python实战004:Selenium获取源码中的DOM元素

8、总结: 通过find_element_by_css_selector查找DOM元素要从父级开始往下查找,才能找到对应的属性标签。

  • 如何使用python的python-docx模块新建word文档
  • Kali Linux怎么调节鼠标光标大小
  • MFC中把一个对话框的控件复制到另一个对话框
  • JDBC查询数据库多条记录返回对应的集合
  • 如何使用phpMyAdmin设置表字段为索引
  • 热门搜索
    怎么包馄饨 男生为什么想睡自己的女朋友 炙怎么读 中耳炎怎么治疗 字体大小怎么调 free怎么读 香菇怎么做好吃 微信怎么注销账号 学制怎么填 水木娃娃十万个为什么