专业的佛山网站建设价格,网页设计有哪些内容,页面设计有哪几种风格,灵璧做网站的公司欢迎您来阅读和练手#xff01;您将会从本章的详细讲解中#xff0c;获取很大的收获#xff01;开始学习吧#xff01;
2.4 CSS定位2.5 SeleniumBuilder辅助定位元素2.6 操作元素#xff08;键盘和鼠标事件#xff09;
正文
2.4 CSS定位
前言 大部分人在使用selenium定…欢迎您来阅读和练手您将会从本章的详细讲解中获取很大的收获开始学习吧
2.4 CSS定位2.5 SeleniumBuilder辅助定位元素2.6 操作元素键盘和鼠标事件
正文
2.4 CSS定位
前言 大部分人在使用selenium定位元素时用的是xpath定位因为xpath基本能解决定位的需求。css定位往往被忽略掉了其实css定位也有它的价值css定位更快语法更简洁。 这一篇css的定位方法主要是对比上一篇的xpath来的基本上xpath能完成的css也可以做到。两篇对比学习更容易理解。 2.4.1 css:属性定位 1.css可以通过元素的id、class、标签这三个常规属性直接定位到 2.如下是百度输入框的的html代码
input idkw classs_ipt typetext autocompleteoff maxlength100 namewd/
3.css用#号表示id属性,如#kw 4.css用.表示class属性如.s_ipt 5.css直接用标签名称无任何标示符如input 2.4.2 css:其它属性
1.css除了可以通过标签、class、id这三个常规属性定位外也可以通过其它属性定位 2.以下是定位其它属性的格式 2.4.3 css:标签
1.css页可以通过标签与属性的组合来定位元素 2.4.4 css:层级关系
1.在前面一篇xpath中讲到层级关系定位这里css也可以达到同样的效果 2.如xpath
//form[idform]/span/input和 //form[classfm]/span/input也可以用css实现 2.4.5 css:索引
1.以下图为例跟上一篇一样 2.css也可以通过索引optionnth-child(1)来定位子元素这点与xpath写法用很大差异其实很好理解直接翻译过来就是第几个小孩。 2.4.6 css:逻辑运算
1.css同样也可以实现逻辑运算同时匹配两个属性这里跟xpath不一样无需写and关键字 2.4.7 css:模糊匹配
1.css的模糊匹配contains(xxx),网上虽然用各种资料显示能用但是小编亲自试验了下一直报错。 2.在各种百度后找到了答案you cant do this withCSS selectors, because there is no such thing as:contains() in CSS. It was a proposal that was abandoned years ago. 非常遗憾这个语法已经被抛弃了所以这里就不用管这个语法了。 css语法远远不止上面提到的还有更多更强大定位策略有兴趣的可以继续深入研究。官方说法css定位更快语法更简洁但是xpath更直观更好理解一些。
2.5 SeleniumBuilder辅助定位元素
前言 对于用火狐浏览器的小伙伴们你还在为定位元素而烦恼嘛 上古神器Selenium Builder来啦哪里不会点哪里妈妈再也不用担心我的定位元素问题啦但是也不是万能基本上都能覆盖到
2.5.1 安装Selenium Builder
在火狐浏览器的附加组件中搜索添加Selenium Builder即可。安装好后如下图所示 2.5.2 直接运用
1.打开你要测试的URL或者打开插件后输入你要测试的URL如下图 2.点击后弹出一个弹窗如下图 注如果你是直接在你要测的网页页面打开这个插件时selenium builder会直接获取你要测的URL
3.点击record 然后你就可以哪里不会点哪里了。这里举个例子
2.5.3 实践案例
1.百度首页点击百度一下然后点击登录再一次点击账号和密码输入框让我们来看看结果。 2.这里没有展开点击展开后可以发现定位该元素的多种方法 直接选择你想要的方法复制粘贴即可,不用的话直接关掉弹窗即可。
2.6 操作元素键盘和鼠标事件
前言 在前面的几篇中重点介绍了一些元素的定位方法定位到元素后接下来就是需要操作元素了。本篇总结了web页面常用的一些操作元素方法可以统称为行为事件 有些web界面的选项菜单需要鼠标悬停在某个元素上才能显示出来如百度页面的设置按钮。
2.6.1 简单操作 1.点击鼠标左键页面按钮click() 2.清空输入框clear() 3.输入字符串send_keys() 4.send_keys()如果是发送中文的前面需加u如u中文,因为这里是输入到windows系统了windows系统是GBK编码我们的脚本是utf-8,需要转码为Unicode国际编码这样才能识别到。 2.6.2 submit提交表单
1.在前面百度搜索案例中输入关键字后可以直接按回车键搜索也可以点搜索按钮搜索。 2.submit()一般用于模拟回车键。 2.6.3 键盘操作 1.selenium提供了一整套的模拟键盘操作事件前面submit()方法如果不行的话可以试试模拟键盘事件 2.模拟键盘的操作需要先导入键盘模块from selenium.webdriver.common.keysimport Keys 3.模拟enter键可以用send_keys(Keys.ENTER) 4.其它常见的键盘操作 键盘F1到F12send_keys(Keys.F1)把F1改成对应的快捷键 复制CtrlCsend_keys(Keys.CONTROL,c) 粘贴CtrlVsend_keys(Keys.CONTROL,v) 全选CtrlAsend_keys(Keys.CONTROL,a) 剪切CtrlXsend_keys(Keys.CONTROL,x) 制表键Tab: send_keys(Keys.TAB) 这里只是列了一些常用的当然除了键盘事件也有鼠标事件。
2.6.4 鼠标悬停事件 1.鼠标不仅仅可以点击(click),鼠标还有其它的操作如鼠标悬停在某个元素上鼠标右击鼠标按住某个按钮拖到 2.鼠标事件需要先导入模块from selenium.webdriver.common.action_chainsimport ActionChains perform() 执行所有ActionChains中的行为 move_to_element() 鼠标悬停。 3.这里以百度页面设置按钮为例 4.除了常用的鼠标悬停事件外还有 右击鼠标context_click() 双击鼠标double_click() 依葫芦画瓢替换上面案例中对应的鼠标事件就可以了 selenium提供了一整套完整的鼠标和键盘行为事件功能还是蛮强大滴。下一篇介绍多窗口的情况下如何处理。