认识selenium
安装
安装selenium:pip install selenium==2.48.0
使用selenium访问地址
- 导入webdriver: form selenium import webdriver
- 调用浏览器:driver =webdriver.PhantomJS(executable_path=r"selenium在你电脑上的路径\bin\selenium.exe")
- 访问百度页面:driver.get(url=‘https://www.baidu.com/’)
# 1. 导入webdriver
from selenium import webdriver
# 2. 调用浏览器
driver = webdriver.PhantomJS(executable_path=r'D:\phantomjs-2.1.1-windows\bin\phantomjs.exe')
# 3. 访问页面
driver.get(url='https://www.baidu.com/')
selenium的属性及方法
title 获取标题
print(driver.title) # 百度一下,你就知道
page_source 查看页面内容
print(driver.page_source)
current_url 查看当前请求的url
print(driver.current_url) # # https://www.baidu.com/
get_cookies() 获取页面所有的cookie
print(driver.get_cookies()) #[{'domain': '.baidu.com', 'expires': '周三, 25 十一月 2020 14:40:16 GMT', 'expiry': 1606315216, 'httponly': False, 'name': 'BA_HECTOR', 'path': '/', 'secure': False, 'value': 'a02t0ha5a6850480uc1frsnm00q'}, {'domain': 'www.baidu.com', 'expires': '周六, 05 十二月 2020 13:40:15 GMT', 'expiry': 1607175615, 'httponly': False, 'name': 'BD_UPN', 'path': '/', 'secure': False, 'value': '14314354'}]
查找元素
find_element_by_id(‘id的值’) 根据id查找元素
# find_element_by_id('id的值') 根据id查找元素
id_kw = driver.find_element_by_id("kw")
print(id_kw) # <selenium.webdriver.remote.webelement.WebElement (session="38ef3120-2f24-11eb-b756-ed1861a98d8d", element=":wdc:1606311822628")>
find_elements_by_class_name(‘class的值’)
定义:根据class和值获取所有符合class值的元素,返回列表
find_element_by_class_name(‘class的值’)
定义:根据class和值获取所有符合class值的第一个元素,返回对象
# find_elements_by_class_name('class的值') 根据class和值获取所有符合class值的元素,返回列表
# find_element_by_class_name('class的值') 根据class和值获取所有符合class值的第一个元素,返回对象
class_list = driver.find_elements_by_class_name('s_ipt') # [<selenium.webdriver.remote.webelement.WebElement (session="e1e59620-2f24-11eb-ab17-8f658eff5fd2", element=":wdc:1606312102919")>]
class_ = driver.find_element_by_class_name('s_ipt') #<selenium.webdriver.remote.webelement.WebElement (session="13ea9c10-2f25-11eb-b67c-2f21ac900e4a", element=":wdc:1606312210782")>
print(class_)
find_element_by_xpath(‘xpath路径’)
定义:根据xpath路径匹配
# find_element_by_xpath('xpath路径') 根据xpath路径查找元素
input = driver.find_element_by_xpath('//input[@id="kw"]')
print(input) # <selenium.webdriver.remote.webelement.WebElement (session="cae039c0-2f25-11eb-8391-bbf79386b802", element=":wdc:1606312538465")>
text 获取标签之间的内容
# text 获取标签之间的内容
# content = driver.find_element_by_xpath('//div[@id="s-top-left"]/text()') # 不支持
content = driver.find_element_by_xpath('//div[@id="s-top-left"]').text # 支持
print(content) # 新闻hao123地图视频贴吧学术更多
get_attribute(‘属性名’) 获取属性值
# 4.7 get_attribute('属性名') 获取属性值
class_s_ipt = driver.find_element_by_class_name('s_ipt').get_attribute('id')
print(class_s_ipt) # kw
selenium中类人的操作
save_screenshot: 截图
# 截图
driver.save_screenshot("baidu.jpg")
send_key(‘输入的内容’) : 在输入输入内容
# send_keys('输入的内容')
# 步骤
# 1. 先获取文本框
# 2. 在输入内容
driver.find_element_by_xpath('//input[@id="kw"]').send_keys('python')
driver.save_screenshot('python.png')
click() : 点击
# 4.10 click() 点击
# 先找到输入框,然后输入内容,再点击
driver.find_element_by_xpath('//input[@id="kw"]').send_keys('python')
driver.find_element_by_xpath('//input[@id="su"]').click()
time.sleep(3)
driver.save_screenshot('点击.png')
# 原因:如果没页面
# 截图太快,页面响应需要时间,需要休眠一会儿再截图
快捷键:
需要导入Keys模块:from selenium.webdriver.common.keys import Keys
全选和剪切
# 举例:全选和剪切
driver.find_element_by_xpath('//input[@id="kw"]').send_keys('python')
driver.save_screenshot('全选之前.png')
driver.find_element_by_xpath('//input[@id="kw"]').send_keys(Keys.CONTROL,'a')
driver.save_screenshot('全选.png')
driver.find_element_by_xpath('//input[@id="kw"]').send_keys(Keys.CONTROL,'x')
driver.save_screenshot('剪切.png')
全选之前:
全选中:
剪切之后: