命令行使用以下命令安装selenium:pip install -U selenium
链接:https://pan.baidu.com/s/1eSct8LO 密码:xeca
下载链接中,只提供了windows版本的chrome和chromedriver
其它操作系统需要另外下载:
chromedriver下载地址:http://npm.taobao.org/mirrors/chromedriver/
from selenium import webdriver
// service_log_path="D:\\chromedriver_service.log" 日志保存的地址
driver=webdriver.Chrome(service_log_path="D:\\chromedriver_service.log")
driver.get("http://www.baidu.com")
driver.maximize_window()
driver.set_window_size()
driver.back()
driver.forward()
driver.refresh()
print(driver.title)
print(driver.current_url)
print(driver.current_window_handle)
#关闭chrome,结束webdriver服务
driver.quit()
driver.close()
(1) id (2) class_name (3) name
(4) tag_name (5) link_text(只对链接有效) (6) partial_link_text
(7) Xpath (8) css
定位方式分类—汇总
(1)id name class_name :为元素属性定位
(2)tag_name:为元素标签定位
(3)link_text 、 partial_link_text:为超链接定位(a标签定位)
(4)css:为css选择器定位
前提:必须有id属性
id定位方法:find_element_by_id()
自动导包:方法名+ctrl+Alt+空格
id定位实现步骤分析
// (1) 导入selenium包
from selenium import webdriver
// (2)导入time包
from time import sleep
// (3)实例化谷歌浏览器
driver=webdriver.Chrome(service_log_path="D:\\chromedriver_service.log")
// (4)打开注册百度
driver.get("dat01\\A.html")
注意:
\:反斜杠为转义字符,所以必须为2个\\
或者:
url=r"day01\A.html"
被r修饰的字符串,字符串中的转义符不做转义使用
/: 斜杠 5/3
//:目录结构
// (5)调用id定位方式
var ele=driver.find_element_by_id("kw")
// (6)使用send_keys() 方法发送数据
ele.send_keys("hh")
// (7) 暂停3秒
sleep(3)
// (8) 关闭浏览器
driver.quit()
前提:元素有name属性来定位
name的定位方法:find_element_by_name()
name定位实现步骤分析 :参考id定位
前提:元素有class属性来定位
class的定位方法:find_element_by_class_name()
class_name定位实现步骤分析 :参考id定位
tag_name的定位方法:find_element_by_tag_name() 返回符合条件的第一个标签
tag_name定位实现步骤分析 :参考id定位
tag_name的定位方法:find_element_by_tag_name() 返回符合条件的第一个标签
tag_name定位实现步骤分析 :参考id定位
说明:link_text是专门用来定位超链接文本(标签)
link_text的定位方法:
(1) 方法:find_element_by_link_text() 返回符合条件的第一个标签
(2) 说明:需要传入a标签全部文本(访问新浪网站)
link_text 定位实现步骤分析 :参考id定位
click():为单击方法
如:driver.find_element_by_link_text(“访问 新浪 网站”).click()
说明:partial_link_text定位是对link_text定位的补充
partial_link_text 为模糊匹配,link_text为全部匹配
partial_link_text定位方法:
(1) 方法:find_element_by_partial_link_text()
(2) 说明:需要传入a标签局部文本能表达唯一性
partial_link_text 定位实现步骤分析 :参考id定位
作用:(1) 查找定位所有符合条件的元素
(2) 返回的定位元素格式为数组(列表)格式
说明:列表数据格式的读取需要指定下标(下标从0开始)
操作(tag_name)
使用tag_name获取第二个元素(密码框):
driver.find_elements_by_tag_name(“input”)[1].send_keys(“123456”)
Xpath即为XML Path的简称,它是一种用来确定XML Path的简称,它是一种用来确定XML文档中某部分位置的语言
HTML可以看做是XML的一种实现,所以selenium用户可以使用这种强大的语言在web应用中定位元素
XML:是一种标记语言,用来数据的存储和传递,后缀.xml结尾
提示:Xpath为强大的语言,那是因为它有非常灵活的策略
(1) 路径——定位
绝对路径
相对路径
(2) 利用元素属性——定位
(3) 层级与属性结合——定位
(4) 属性与逻辑结合——定位
方法:driver.find_element_by_Xpath()
(1) 路径(绝对路径、相对路径)
绝对路径:从最外层元素到指定元素之间所有经过元素层级 如:/html/body/div/p[2]
相对路径:从第一个符合条件元素开始(一般配合属性来区分) 如://input[@id="userA"]
(2) 利用元素属性
说明:快速定位元素,利用元素唯一属性
示例:*[@id="userA"]
(3) 层级与属性结合
说明:要找的元素没有属性,但是它的父级有
示例://*[@id="telA" and @class="telA"]
Xpath延伸:
(1) *[text()==“xxx”] 文本内容是XXX的元素
(2) *[starts-with(@attribute,‘xxx’)] 属性以XXX开头的元素
(3) *[contains(@attribute,‘xxx’)] 属性中含有XXX的元素
css是一种语言,它是用来描述HTML和XML的元素显示样式
css语言书写的两个格式:
(1) 写在HTML语言中