Selenium模拟(操作)浏览器功能

1.Selenium

1.什么是selenium

(1) Selenium 是一个用于 Web 应用程序测试的工具。
(2) Selenium 测试直接运行在浏览器中,就像真正的用户在操作一样。
(3)支持通过各种 driver
FirfoxDriver IternetExplorerDriver OperaDriver ChromeDriver )驱动
真实浏览器完成测试。
(4) selenium 也是支持无界面浏览器操作的

2.为什么使用selenium

模拟浏览器功能,自动执行网页中的 js 代码,实现动态加载

3.如何安装selenium

(1)操作谷歌浏览器驱动下载地址
(2)谷歌驱动和谷歌浏览器版本之间的映射表
(3)查看谷歌浏览器版本
谷歌浏览器右上角 ‐‐> 帮助 ‐‐> 关于
(4) pip install selenium

4.selenium的使用步骤?

(1)导入: from selenium import webdriver
(2)创建谷歌浏览器操作对象:
         path = 谷歌浏览器驱动文件路径
        browser = webdriver . Chrome ( path )
(3)访问网址
        url = 要访问的网址
        browser . get ( url )

# (1)导入selenium
from selenium import webdriver

# (2) 创建浏览器操作对象

path = 'D:/chromeDriver/chromedriver_win32/chromedriver.exe'

browser = webdriver.Chrome(path)

# (3)访问网站
# url = 'https://www.baidu.com'
#
# browser.get(url)

url = 'https://www.jd.com/'

browser.get(url)

# page_source获取网页源码
content = browser.page_source
print(content)

元素定位

selenium 的元素定位?
元素定位:自动化要做的就是模拟鼠标和键盘来操作来操作这些元素,点击、输入等等。操作这些元素前首先
要找到它们, WebDriver 提供很多定位元素的方法
from selenium import webdriver

path = 'D:/chromeDriver/chromedriver_win32/chromedriver.exe'
browser = webdriver.Chrome(path)

url = 'https://www.baidu.com'
browser.get(url)

# 元素定位

# 根据id来找到对象
button = browser.find_element_by_id('su')
print(button)

# 根据标签属性的属性值来获取对象的
# button = browser.find_element_by_name('wd')
# print(button)

# 根据xpath语句来获取对象
# button = browser.find_elements_by_xpath('//input[@id="su"]')
# print(button)

# 根据标签的名字来获取对象
# button = browser.find_elements_by_tag_name('input')
# print(button)

# 使用的bs4的语法来获取对象
# button = browser.find_elements_by_css_selector('#su')
# print(button)

# button = browser.find_element_by_link_text('直播')
# print(button)

获取元素信息

from selenium import webdriver

path = 'D:/chromeDriver/chromedriver_win32/chromedriver.exe'
browser = webdriver.Chrome(path)

url = 'http://www.baidu.com'
browser.get(url)

input = browser.find_element_by_id('su')

# 获取标签的属性
print(input.get_attribute('class'))
# 获取标签的名字
print(input.tag_name)

# 获取元素文本
a = browser.find_element_by_link_text('新闻')
print(a.text)

浏览器交互操作浏览器



from selenium import webdriver

# 创建浏览器对象
path = 'D:/chromeDriver/chromedriver_win32/chromedriver.exe'
browser = webdriver.Chrome(path)

# url
url = 'https://www.baidu.com'
browser.get(url)

import time
time.sleep(2)

# 获取文本框的对象
input = browser.find_element_by_id('kw')

# 在文本框中输入周杰伦
input.send_keys('周杰伦')

time.sleep(2)

# 获取百度一下的按钮
button = browser.find_element_by_id('su')

# 点击按钮
button.click()

time.sleep(2)

# 滑到底部
js_bottom = 'document.documentElement.scrollTop=100000'
browser.execute_script(js_bottom)

time.sleep(2)

# 获取下一页的按钮
next = browser.find_element_by_xpath('//a[@class="n"]')

# 点击下一页
next.click()

time.sleep(2)

# 回到上一页 浏览器左侧箭头<-
browser.back()

time.sleep(2)

# 回去 浏览器左侧箭头 ->
browser.forward()

time.sleep(3)

# 退出
browser.quit()

3.Chrome handless 不打开UI界面的情况下操作浏览器

Chrome-headless 模式, Google 针对 Chrome 浏览器 59 版 新增加的一种模式,可以让你不打开 UI 界面的情况下
使用 Chrome 浏览器,所以运行效果与 Chrome 保持完美一致

1.系统要求:

Chrome
Unix \ Linux 系统需要 chrome > = 59
Windows 系统需要 chrome > = 60
Python3 .6
Selenium == 3.4 . *
ChromeDriver == 2.31
# 封装的handless
from selenium import webdriver
from selenium.webdriver.chrome.options import Options


# 固定写法
def share_browser():
    chrome_options = Options()
    chrome_options.add_argument('--headless')
    chrome_options.add_argument('--disable-gpu')

    # path是你自己的chrome浏览器的文件路径
    path = r'C:/Users/87278/AppData/Local/Google/Chrome/Application/chrome.exe'
    chrome_options.binary_location = path

    browser = webdriver.Chrome(options=chrome_options)
    return browser


browser = share_browser()

url = 'https://www.baidu.com'

browser.get(url)
# 拍照
browser.save_screenshot('baidu.png')

注意:

将chromedriver.exe拷贝至谷歌浏览器目录(如 C:\Program Files\Google\Chrome\Application)

以及python 根目录

一般放在  python 文件所在的根目录就可以

 

  • 0
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

yzhSWJ

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值