如何更改Django默认主页为自定义主页,更改Djago默认主页为自定义主页,这是开始网页的第一步。......
python实战004:Selenium获取源码中的DOM元素
前面我们已经通过Selenium可以模拟登录网站并获取到网页源码,接着我们就要想办法实现模拟登录,在实现模拟登录之前我们需要先获取到相应的DOM元素,才能给其赋值提交账户信息,这里我们要现获取到“登录”标签并实现点击,弹出百度登录窗口。
工具/原料
- Selenium
方法/步骤
用selenium查找元素是相当方便的事情的,selenium定义了很多查找DOM元素的方法,通常用的比较多的是通过id选择器和CSS选择器,当然还有更多的方法:
在获取DOM元素之前我们需要先查看下网页源码,看看这个标签是用什么方法定义的,按F12打开“开发者工具”窗口,用元素选择器点中“登录”标签即可定位到该标签的源码位置,在源码中我们可以看到name="tj_login" class="lb"属性,我们先确认下这两个属性是否存在多个,如果都是唯一的,随便选个即可。
那么我们该如何来选择这个元素呢,这里我们可以使用find_element_by_css_selector方法来获取DOM元素,这里我们用name="tj_login" class="lb"两个属性分别获取下该元素,这时我们看到的就是弹出二维码登录的页面。
接着我们需要继续点击“用户名登录”标签,让窗口跳转到用户名登录页面,同样我们要先找到该标签的DOM元素, 按F12打开“开发者工具”窗口,用元素选择器点中“用户名登录”标签即可定位到该标签的源码位置,在源码中我们可以看到:p class="tang-pass-footerBarULogin pass-link" title="用户名登录" data-type="normal" id="TANGRAM__PSP_10__footerULoginBtn">用户名登录/
这里我们看到,代码中定义了ID属性id="TANGRAM__PSP_10__footerULoginBtn",这样我们就可以直接使用find_element_by_id来定位到该标签:
这里遇到个问题,当我使用find_element_by_css_selector方法获取标签时遇到点问题,在查找DOM元素时已经确认了该属性是唯一的,按理说直接指定该元素应该就可以定位到了,可以当我使用 find_element_by_css_selector(‘lb’)时报错了:没有这样的元素:找不到元素:“method”:“css selector”,“selector”:“lb”(翻译:没有这样的元素:找不到元素:“method”:“css selector”,“selector”:“lb”)
我用获取元素信息的方法is_displayed()查看'.lb'是否存在,打印element判断元素是否是存在的,返回true,说明是存在的,false表示不存在,这里返回false,说明没找到'.lb'。
总结: 通过find_element_by_css_selector查找DOM元素要从父级开始往下查找,才能找到对应的属性标签。
以上方法由办公区教程网编辑摘抄自百度经验可供大家参考!
标签: python
相关文章
- 详细阅读
-
python中关于单/双引号和转义引号的区别详细阅读
python中关于单/双引号和转义引号的区别,ytho中单/双引号的作用是将引号中间的符号以字符串的形式传递,而在ytho中它们两个的功能是一样的,只不过在遇到转义引号的时候,两者的使用才有所区别,现......
2023-03-16 328 python
- 详细阅读