Selenium Part2: WebDriverAPI 的使用

374 阅读3分钟

一.元素定位

上一节的简单小脚本,解释一下。 画蓝线的部分到底是什么意思呢?

我们要完成的动作是

1.登陆有道网站

2在单词输入框中输入要查询的内容

3.单击查询button

4.成功跳转显示页面后,退出浏览器

登陆一定可以看明白,但是下面的蓝线部分是什么意思呢,因为输入框还有搜索的button都是在前端框架中的,所以说我们可以通过前端框架中的代码中的元素来定位到我们需要使用的部分然后完成模拟交互。

不是很懂前端框架但是想要定位一个元素就必须给出足够多的信息和唯一的元素内容,就像是该元素的GUID。我是真不懂前端的东西,但是我会用,来跟我学。

开发者模式大家一定不陌生如下:

如图,就把代码以明文展示出来。

在查看器的左边有一个小鼠标箭头!!!看到这里难免有些兴奋因为好像我们就是需要这个东西模拟定位定位到我们需要的元素位置,要不这么多代码,肉眼检索的话...

1.上方红线区域就是我们要模拟的用户行为区域,所以用刚才的模式点击即可跳转到下方红框区域的蓝色代码。

2.然后呢,发现这个蓝色代码里面有好多内容但是好像有一个叫ID的!对了,ID就是一种可以辨识元素的属性。

3.在使用刚才的方法定位翻译button,这回心态崩了,只写个tab标签名称怎么办这怎么辨识区别呢,用最简单粗暴的!!!xpath--右击复制--Xpath。

4.准备工作已经完成。

PS:另外元素定位有八种,但是可以定位到就可以了(定位唯一元素成功)

id定位

name 定位

class定位

tag定位

link定位

partial link定位

Xpath定位

CSS定位

还有使用By句式的,但是效果跟前八种一样,可以自行百度。

Xpath就是绝对路径,所以找到了一个网页元素的绝对路径这一种方法会用就可以了。

python代码中这样写就可以了

find_element_by_XXX("YYY") XXX表示八种中的任意一种定位方法或者组合,YYY为定位的属性名称。脚本中的send_keys("")就是在模拟输入内容 click()就是模拟单击。

这下应该清楚了。

我有个大胆的想法,去这样操作一波1024然后把XXX的高清无码全部嘻嘻嘻爬下来,这样不到一个月我就可以进医院了。

二.控制浏览器

来 享受一下遥控的X感,可以控制窗口大小,前进后退刷新,关闭打开 清除文本......

运行,成功。

三.奴役完浏览器,来继续奴役鼠标

之前用到的click()就是模拟的鼠标左键单击的行为,在webdriver中,将这些关于鼠标的操作的方法封装在ActionChains类中。

ActionChains常用方法:

·perform() 执行所有ActionChains中存储的行为;

·context_click() 右击;

·double_click() 双击;

类似于上面

·drag_and_drop(source,target) 拖动;

source:鼠标拖动的源元素 target:鼠标释放的目标元素

·move_to_element():鼠标悬停;

四.奴役键盘 键盘操作:

send_keys(Keys.BACK_SPACE)删除键 send_keys(Keys.SPACE)空格键 send_keys(Keys.TAB)制表键等等