webdriver 保存网页api_webdriver api - CSDN
精华内容
参与话题
  • 详细:https://blog.csdn.net/yjlch1016/article/details/78115813#commentBox 中文API:https://blog.csdn.net/m0_37831339/article/details/81206427
    展开全文
  • 什么是 Selenium 和 WebDriver?

    千次阅读 2018-08-21 23:33:38
    Selenium是一个浏览器自动化操作框架。selenium主要由三种工具...2.因此第二个工具——Selenium WebDriver提供了各种语言环境的API来支持更多控制权和编写符合标准软件开发实践的应用程序。 3.最后一个工具——Sel...

    Selenium是一个浏览器自动化操作框架。selenium主要由三种工具组成。
    1.第一个工具——SeleniumIDE,是Firefox的扩展插件,支持用户录制和回访测试。录制/回访模式存在局限性,对许多用户来说并不适合。

    2.因此第二个工具——Selenium WebDriver提供了各种语言环境的API来支持更多控制权和编写符合标准软件开发实践的应用程序。

    3.最后一个工具——SeleniumGrid帮助工程师使用Selenium API控制分布在一系列机器上的浏览器实例,支持并发运行更多测试。

    在项目内部,它们分别被称为“IDE”、“WebDriver”和“Grid”。

    什么是 Webdriver ?

    官网上是这么介绍它的:
    WebDriver is a clean, fast framework for automated testing of webapps.(WebDriver是一个干净、快速的web应用自动测试框架。)
    但是我觉得它并不局限与进行自动化测试,完全可以用作其它用途。

    WebDriver针对各个浏览器而开发,取代了嵌入到被测Web应用中的JavaScript。与浏览器的紧密集成支持创建更高级的测试,避免了JavaScript安全模型导致的限制。除了来自浏览器厂商的支持,WebDriver还利用操作系统级的调用模拟用户输入。WebDriver支持Firefox(FirefoxDriver)、IE (InternetExplorerDriver)、Opera (OperaDriver)和Chrome (ChromeDriver)。 它还支持Android (AndroidDriver)和iPhone (IPhoneDriver)的移动应用测试。它还包括一个基于HtmlUnit的无界面实现,称为HtmlUnitDriver。WebDriver API可以通过Python、Ruby、Java和C#访问,支持开发人员使用他们偏爱的编程语言来创建测试。

    摘选自https://blog.csdn.net/scratlc/article/details/62044040

    WebDriver如何工作

    WebDriver是W3C的一个标准,由Selenium主持。

    具体的协议标准可以从http://code.google.com/p/selenium/wiki/JsonWireProtocol#Command_Reference 查看。

    从这个协议中我们可以看到,WebDriver之所以能够实现与浏览器进行交互,是因为浏览器实现了这些协议。这个协议是使用JOSN通过HTTP进行传输。

    它的实现使用了经典的Client-Server模式。客户端发送一个requset,服务器端返回一个response。

    我们明确几个概念。

    Client

    调用 WebDriverAPI的机器。

    Server

    运行浏览器的机器。Firefox浏览器直接实现了WebDriver的通讯协议,而Chrome和IE则是通过ChromeDriver和InternetExplorerDriver实现的。

    Session

    服务器端需要维护浏览器的Session,从客户端发过来的请求头中包含了Session信息,服务器端将会执行对应的浏览器页面。

    WebElement

    这是WebDriverAPI中的对象,代表页面上的一个DOM元素。

    下面用代码简单实现WebDriver在百度搜索“建设性问题”
    # 导入 selenium 下的 websriver(网页内驱动模块)
    from selenium import webdriver
    
    # 导入 time 时间模块
    import time
    
    
    
    # websriver(网页内驱动)Chrome(谷歌浏览器)
    driver = webdriver.Chrome()
    
    # time.sleep(睡眠等待时间) 后面的括号(1)是睡眠等待时间1秒 可根据实际情况设计时间长短
    time.sleep(1)
    
    # 给于想要打开的某个页面的url路径 如下例打开 百度 页面
    url = 'http://www.baidu.com'
    
    # 用get方法打开url
    driver.get(url)
    
    # find_element_by_id方法是(通过id查找元素)  (‘kw’)是百度搜索框中的id
    # send_keys方法是(发送要搜索的内容) (‘括号内输入想要搜索的内容’)
    driver.find_element_by_id('kw').send_keys("建设性问题")
    
    # find_element_by_id方法是(通过id查找元素)  (‘su’)是百度搜索按键中的id
    # click是单击事件
    driver.find_element_by_id('su').click()
    time.sleep(2)
    
    #保存到本地baidu.html文件中
    with open('baidu.html', 'wb') as f:
        打开文件写入获取后的解码游戏
        f.write(driver.page_source.encode('utf-8'))
    展开全文
  • 原生问题是,从web页面点击hyperlink去下载某个文件时,会弹出windows模式对话框,选择保存路径或打开方式。为了绕开Windows的参与,就要求助Selenium Webdriver。相对通过Web上传文件来说,自动下载文件要复杂不少...
    接上篇,本篇讲怎么从Web下载文件。原生问题是,从web页面点击hyperlink去下载某个文件时,会弹出windows模式对话框,选择保存路径或打开方式。为了绕开Windows的参与,就要求助Selenium Webdriver。相对通过Web上传文件来说,自动下载文件要复杂不少。




    互联网给出了很多类似的答案,说明这个已经不是技术问题,摘取一个供参考:http://selenium-python.readthedocs.org/faq.html (No. 8.4). 


    还是以Selenium Webdriver + Python为例:


    import os
    
    from selenium import webdriver
    
    fp = webdriver.FirefoxProfile()
    
    fp.set_preference("browser.download.folderList",2)
    fp.set_preference("browser.download.manager.showWhenStarting",False)
    fp.set_preference("browser.download.dir", os.getcwd())
    fp.set_preference("browser.helperApps.neverAsk.saveToDisk", "application/octet-stream")
    
    browser = webdriver.Firefox(firefox_profile=fp)
    browser.get("http://pypi.python.org/pypi/selenium")
    browser.find_element_by_partial_link_text("selenium-2").click()



    这个问题原理是说,要修改浏览器的Profile (以Firefox为例),让它能够在不显示Windows对话框的前提下,自动保存文件到某个地方。


    这里又有个问题困扰了我这个初学者。那些个set_preference()里面的第一个参数是从哪来的?在哪定义的?翻遍了Webdriver的API文档也找不到。原来,它们就是firefox的运行参数,通过about:config可以看到并修改。方法:

    1. 打开Firefox浏览器

    2. 在地址栏输入about:config

    3. 回车

    想通过Webdriver修改firefox的profile,参数在这里都可以找到。


    前端知识何其之匮乏。究其原因,不是自己见识寡,就是身边牛人少。
    展开全文
  • WebDriver简介selenium从2.0开始集成了webdriverAPI,提供了更简单,更简洁的编程接口。selenium webdriver的目标是提供一个设计良好的面向对象的API,提供了更好的支持进行web-app测试。从这篇博客开始,将学习...

    WebDriver简介

    selenium从2.0开始集成了webdriver的API,提供了更简单,更简洁的编程接口。selenium webdriver的目标是提供一个设计良好的面向对象的API,提供了更好的支持进行web-app测试。从这篇博客开始,将学习使用如何使用python调用webdriver框架对浏览器进行一系列的操作

    打开浏览器

    selenium+python自动化测试(一)–环境搭建中,运行了一个测试脚本,脚本内容如下:

    from selenium import webdriver
    import time
    
    driver = webdriver.Chrome()
    driver.get("http://www.baidu.com")
    print(driver.title)
    driver.find_element_by_id("kw").send_keys("selenium")
    driver.find_element_by_id("su").click()
    time.sleep(3)
    driver.close()

    运行脚本的第一步是打开浏览器,使用webdriver.Chrome()打开谷歌浏览器,如果要指定其他浏览器,比如要使用Firefox或者IE浏览器,更换浏览器名称就可以了

    driver = webdriver.Chrome() //打开Chrome浏览器
    driver = webdriver.Firefox() //打开Firefox浏览器
    driver = webdriver.Ie() //打开IE浏览器

    第二步操作是打开页面,使用driver.get(url)方法来打开网页链接,例如脚本中打开百度首页

    driver.get("http://www.baidu.com")

    接下来是print(driver.title),使用driver.title获取当前页面的title,title就是在浏览器tab上显示的内容,例如百度首页的标题是“百度一下,你就知道”

    浏览器前进后退

    在当前页面打开一个新的链接后,如果想回退到前一个页面,使用如下driver.back(),相当于点击了浏览器的后退按钮

    和back操作对应的是浏览器前进操作driver.forward(),相当于点击了浏览器的前进按钮

    driver.back() //回到上一个页面
    driver.forward() //切换到下一个页面

    最大化浏览器窗口

    浏览器运行后,如果页面没有最大化,可以调用driver.maximize_window()将浏览器最大化,相当于点击了页面右上角的最大化按钮

    也可以自定义浏览器的尺寸

    driver.maximize_window() //浏览器窗口最大化
    driver.set_window_size(800, 720) //设置窗口大小为800*720

    屏幕截图

    打开页面以后,可以对页面进行截屏,在遇到异常的时候,根据截图可以快速定位问题的原因所在

    浏览器截屏操作,参数是截屏的图片保存路径:

    driver.get_screenshot_as_file("D:/data/test.png")

    页面刷新

    有时页面过期后,网页上显示的信息可能不是最新的,需要对页面进行刷新,使用refresh()方法刷新页面,相当于点击浏览器的刷新按钮

    driver.refresh() //重新加载页面

    退出浏览器

    在测试脚本运行完后,一般会在最后关闭浏览器,有两种方法关闭浏览器,close()方法用于关闭当前页面,quit()方法关闭所有和当前测试有关的浏览器窗口

    driver.close() //关闭当前页面
    driver.quit() //关闭所有由当前测试脚本打开的页面

    这篇博客介绍了操作浏览器的各种方法,下篇将介绍如何查找页面上的元素

    展开全文
  • python webdriver API

    千次阅读 2015-09-02 22:39:07
    最近几篇将详细的讲解基于python 的webdriver API,笔者更愿意读者自已去查询webdriver API 中各种操作方法的使用,为了保持本书由浅入深的完整性。 浏览器的操作1.1、浏览器最大化 在统一的浏览器大小下运行用例,...
  • 本文中的样例均使用SoapUI ,关于SoapUI+Webdriver 的配置,请看上一篇: http://blog.csdn.net/wwwqjpcom/article/details/51174664我弄这个的本意是为了在SoapUI中更好地编写自动化用例,因为我的业务流程有的很...
  • 因为Webdriver每次实例化都会新开一个全新的浏览器会话,在有些情况下需要复用之前打开未关闭的会话。比如爬虫,希望结束脚本时,让浏览器处于空闲状态。当脚本重新运行时,它将继续使用这个会话工作。还就是在做...
  • [492]selenium保存静态网页

    千次阅读 2019-12-14 19:00:36
    用到的工具有chromedriver,pywin32和selenium。chromedriver安装配置过程自行百度,需要注意的是chromedriver和chrome的版本号需要一一对应,否则会出现不必要的报错。 1、以新浪的一条新闻网址为例 ...
  • Python + Selenium: expected_conditions介绍

    千次阅读 2018-09-28 16:55:18
    expected_conditions是Selenium的一个模块,selenium.webdriver.support.expected_conditions,可以对网页上元素是否存在,可点击等等进行判断,一般用于断言或与WebDriverWait配合使用。上一次介绍WebDriverWait的...
  • selenium入门教程

    万次阅读 2018-10-29 14:13:17
    在浏览器中测试selenium,目前只能在火狐浏览器上和谷歌上安装相关插件,首次接触以来,自己用的是在火狐浏览器上学习的,以下是个人学习的一些心得。 selenium是一款优秀的软件测试工具,安装比较简单,在火狐浏览...
  • selenium webdriver处理HTML5的视频播放

    千次阅读 2018-01-18 22:28:21
    目前HTML5技术已逐渐成为主流,主流的浏览器都已支持HTML5.越来越多的应用使用了HTML5的元素,如canvas、video等,另外网页存储功能更增加了用户的网络体验,使得越来越多的开发者在使用这样的标准,所以我们也需要...
  • python初学selenium+phantomjs遇到的问题

    万次阅读 2016-01-11 13:47:17
    自动化测试神器 selenium+phantomjs Selenium也是一个用于Web应用程序测试的工具。Selenium测试直接运行在浏览器中,就像真正的用户在操作一样。支持的浏览器包括IE、Mozilla Firefox、Mozilla Suite等。...
  • from selenium import webdriver import time import win32api import win32con #测试网址 news_url="自定义一个url吧" #打开另存为mhtml功能 options=webdriver.ChromeOptions() options.add_argument('--save-page...
  • 本文所有实现都基于selenium + 火狐浏览器,及geckodriver驱动 ,驱动下载地址https://github.com/mozilla/geckodriver/releases,找到对应系统的版本,注意驱动还需要和浏览器的版本配对,一般更新浏览器到最新,...
  • python selenium 用法 和 Chrome headless

    千次阅读 2020-09-07 10:56:17
    From:http://cuiqingcai.com/2599.html Selenium教程:https://www.yiibai.com/selenium selenium 官方参考文档:https://selenium-python.readthedocs.io/index.html Selenium Documentation:...
  • 在做自动化测试的时候,有时我们需要保证浏览器支持缓存功能,比如在网页中用到了HTML5的localStorage,如果使用默认的ChromeDriver,那么localStorage功能就会出现问题,需要使用user-data-dir参数进行初始化...
  • python 爬虫selemium用法归结

    千次阅读 2018-06-04 09:44:11
    Selenium是一套提供编写功能以及验收测试的API。利用这个,可以很直观的接触到Selenium WebDriver的所有功能,并且还被多个浏览器所接受。安装selenium首先在终端中 输入 pip install selenium由于本人所使用的是...
  • 周末两天在家带孩子没有更新博客,今天用Selenium webdriver设计了一个爬虫程序,来获取某电商平台的商品信息。  首先简单介绍一下什么是Selenium webdriver。Selenium本身是一个项目的名字,它包含了一组使用...
  • Selenium和PhantomJS

    万次阅读 2018-05-03 11:24:34
    1,Selenium Selenium是一个Web的自动化测试工具,最初是为网站自动化测试而开发的,类型像我们玩游戏用的按键精灵,可以按指定的命令自动操作,不同是Selenium 可以直接运行在浏览器上,它支持所有主流的浏览器...
  • Selenium实现交互式模拟浏览器行为

    千次阅读 2018-06-09 13:50:36
    前面介绍了网络爬虫对静态页面的抓取,但是在爬取网页的时候会遇到各种各样的情况,比如下拉选项和表单提交,这些都是用之前的方法解决不了的。在Python爬虫中处理这种需要模拟用户操作的情况最好的方法之一就是使用...
1 2 3 4 5 ... 20
收藏数 1,828
精华内容 731
关键字:

webdriver 保存网页api