1.八种基本定位方式
id定位,使用方法: driver.find_element_by_id("id")
name定位,使用方法:driver.find_element_by_name("name")
class name定位,使用方法:driver.find_element_by_class_name("class name")
tag name 定位,使用方式:driver.find_element_by_tag_name("tag name")
link text 定位,使用方式:driver.find_element.by_link_text("link text")
partial link text定位,使用方式:driver.find_element_by_partial_link_text("partial link text")
xpath 定位,使用方式:driver.find_element_by_xpath("xpath")
css selector 定位使用方式:driver.find_element_by_css_selector("css selector")
以百度为例
这个是百度搜索输入框的控件信息
这个是百度一下 按钮的控件信息
使用id定位实例:
from selenium import webdriver driver = webdriver.Chrome() driver.implicitly_wait(30) driver.get("https://www.baidu.com/") driver.find_element_by_id("kw").send_keys("小渣仔") driver.find_element_by_id("su").click() driver.close()
使用name定位:
from selenium import webdriver driver = webdriver.Chrome() driver.implicitly_wait(30) driver.get("https://www.baidu.com/") driver.find_element_by_name("wd").send_keys("小渣仔") driver.find_element_by_id("su").click() driver.close()
只列出两个实例,剩下的自己体会下。
小心得:最常用的 是 css、xpath、id 这三个,其它的有时会出现定位不到的问题。xpath 和 css 定位率较高,但是xpath效率慢,推荐使用css定位,定位准确且效率高。
css定位列子:
from selenium import webdriver driver = webdriver.Chrome() driver.implicitly_wait(30) driver.get("https://www.baidu.com/") driver.find_element_by_css_selector(".s_ipt").send_keys("小渣仔") driver.find_element_by_css_selector(".s_btn").click() driver.close()
如果定位失败,会给出这个提示:
2.使用定位插件定位
定位控件的问题,用浏览器自带的的开发者工具,有时无法满足需求,需要使用第三方定位插件来辅助定位,目前主流的定位插件有火狐浏览器的Firebug、firepath、Selenium Builder、Ranorex Selocity等
本教程只讲Ranorex Selocity的使用,其它插件自行百度使用。
Ranorex Selocity 下载地址:链接:https://pan.baidu.com/s/1YlgJBlXUD2kcXM667pNZfQ 提取码:olge
安装Ranorex Selocity 教程:
新建一个文件夹任意命名,把下载ranorex selocity 的压缩包文件解压到该文件夹。
开chrome,地址栏输入chrome://extensions/ ,点击开启开发者模式
点击加载以解压的扩展程序
选择解压的文件夹,点击确定,右上角出现如下图的图标表示安装完成
使用Ranorex Selocity
打开浏览器,在地址栏 输入 https://www.baidu.com/
F12 或者 鼠标右键-检查,打开开发者工具栏,界面如下图
点击 elements,点击选择元素
再点击 Ranorex Selocity
可以看到已经获取了css,xpath,rxpath,点击复制,粘贴到代码里 就可以了。