最近在学习selenium,过程记录下
Python就不说了,容易出现问题的应该是 webdriver,打开selenium的官网,找到对应的驱动并下载
附上地址吧:https://chromedriver.storage.googleapis.com/index.html
版本要和你当前的Chrome版本相符,下图是我的
点击进入根据系统选择下载
下载好后,解压文件,并将文件放到/usr/local/bin目录下就可以了
注:打开finder,按【command+shift+G】弹出对话框,输入/usr/local/bin前往即可,也可以用终端
接下来写一个简单的打开百度,输入selenium,并关闭百度
from selenium import webdriver
from time import sleep
driver = webdriver.Chrome()
driver.get('http://www.baidu.com')
driver.find_element_by_id('kw').send_keys('selenium')
driver.find_element_by_id('su').click()
sleep(3)
driver.quit()
其中用到了对象定位方法,常用的有以下几种:
- id定位:find_element_by_id()
不会重复 - name定位:find_element_by_name()
基于元素中的name值来定位,有重复的可能 - link textname定位:find_element_by_class_name()
基于元素样式来定位,重复的可能性很大 - link text定位:find_element_by_link_text()
用于超链接定位 - partial link text定位:find_element_by_partial_link_text()
是link text的模糊查询,当查询到多个元素时,取第一个 - tagname定位:find_element_by_tag_name()
标签名定位,重复性极高,二次筛选时可使用 - cssselectorr定位:find_element_by_css_selector()
基于class属性实现的定位 - xpath定位:find_element_by_xpath()
用的较多的一种,基于页面结构定位(绝对路径、相对路径)
在执行的过程中出现了一个问题
Run ‘pytest in demo03.py’
解决方法也比较简单
点击Run ,然后选择Edit Configurations(编辑配置)
在打开的页面可以看到 Python tests,将其下的文件删除
再到Python下新建名字相符的.py文件,注意路径哦
新建后再来执行就正常了
除了元素定位方式,webdriver还有一些常用的属性和方法
属性:
driver.name 浏览器名称
driver.current_url 当前的URL
driver.title 当前页面标题
driver.page_source 当前页面源码
driver.window_handles 当前窗口句柄
driver.current_window_handle 窗口句柄
方法:
driver.back() 浏览器后退
driver.forward() 浏览器前进
driver.refresh() 浏览器刷新
driver.close() 关闭当前窗口
driver.quit() 退出浏览器
WebElement属性和方法
属性:
id 标示
tag_name 宽高
size 宽高和坐标
rect 标签坐标
text 文本
方法:
send_keys() 输入内容
clear() 清空内容
click() 单击
is_selected() 是否被选中
is_enabled() 是否可用
is_displayed() 是否显示
get_attribute() 获得属性
value_of_css_property() css属性