zoukankan      html  css  js  c++  java
  • web端自动化——webdriver驱动

    1.1Edge浏览器(不过,Edge浏览器只能运行于 Windows 10)

    Edge驱动的下载地址,复制链接http://go.microsoft.com/fwlink/?LinkId=619687

    下载MicrosoftWebDriver.msi 文件。双击安装,将安装目录添加到系统环境变量path下,或将安装文件夹下的 MicrosoftWebDriver.exe文件复制到Python安装目录下。

    下面就可以使用Edge浏览器运行测试脚本了。

    baidu.Py

    from selenium import webdriver

    from time import *

    driver = webdriver.Edge()

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

    driver.find_element_by_id("kw").send_keys("Edge")

    driver.find_element_by_id("su").click()

    sleep(5)

    driver.close()

    1.2 Chrome浏览器

    把下载好的驱动包chromedriver.exe解压出来,放在本机谷歌浏览器安装目录下的Application目录中(我的安装路径是:C:UsersAdministratorAppDataLocalGoogleChromeApplication,具体看你们安装的路径),然后配置环境变量在path中添加chromedriver.exe的路径。chromedriver驱动下载地址:http://chromedriver.storage.googleapis.com/index.html

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

    1.3 Firefox浏览器

    把下载好的驱动包geckodriver.exe解压出来,放在本机火狐浏览器安装目录下的Application目录中(我的安装路径是:C:Program Files (x86)Mozilla Firefox,具体看你们安装的路径),然后配置环境变量在path中添加geckodriver.exe的路径。geckodriver驱动下载地址:https://github.com/mozilla/geckodriver/releases/

    from selenium import webdriver
    from time import *
    driver = webdriver.Firefox()
    driver.get("http://www.baidu.com")
    driver.find_element_by_id("kw").send_keys("Firefox")
    driver.find_element_by_id("su").click()
    sleep(5)
    driver.close()

    1.4 IE浏览器

     驱动下载地址:https://github.com/SeleniumHQ/selenium/wiki/InternetExplorerDriver【要是连不上,请翻墙】

    使用RF在ie浏览器上测试的同学,务必检查以下几个设置:
    1、IE选项设置的安全页中,4个区域的启用保护模式的勾选都去掉(或都勾上)(工具> internet选项>安全)
    2、IE选项设置的连接页中,局域网设置里的代理服务器设置,不能勾选。如果需要配置代理,请使用上面的pac自动配置脚本来使用代理。(工具> internet选项>安全)
    3、IE页面的显示比例要为100%
    4、下载对于版本的IEDriverServer.exe文件,放到环境变量path路径的目录里或把他所在的目录加到path环境变量中。(我的IE安装路径是:C:Program FilesInternet Explorer,具体看你们安装路径)

    from selenium import webdriver
    from time import *
    driver = webdriver.Ie()
    driver.get("http://www.baidu.com")
    driver.find_element_by_id("kw").send_keys("Ie")
    driver.find_element_by_id("su").click()
    sleep(5)
    driver.close()

    如果不会手动设置环境变量,那么可以通过如下脚本来设置IE浏览器驱动的环境变量并运行脚本:
    import os
    from selenium import webdriver
    from time import *
    IEDriverServer = "C:Program FilesInternet ExplorerIEDriverServer.exe"
    os.environ["webdriver.ie.driver"] = IEDriverServer
    driver = webdriver.Ie(IEDriverServer)
    driver.get("http://www.baidu.com")
    driver.find_element_by_id("kw").send_keys("Ie")
    driver.find_element_by_id("su").click()
    sleep(3)
    driver.quit()

    1.5 Opera浏览器

    OperaChromiumDriver驱动支持。

    驱动下载地址:https://sites.google.com/a/chromium.org/chromedriver/home

    下载对应版本的operadriver*.zip,解压后将得到operadriver.exe文件,同样将其放到opera浏览器安装目录下,原因同上。

    1.6 Safari浏览器

    Safari为苹果公司的浏览器,最早支持MAC平台,不过,现在己经支持Windows平台。与其他浏览器有所不同,Safari浏览器没有相应的驱动文件,它的驱动被集成到了Selenium Server中,所以,需要通过Remote配置运行。

    首先,在Windows命令提示符下启动Selenium Server。

    >java -jar selenium-server-standalone-3.141.0.jar

    然后,运行脚本。

    baidu1.py

    from selenium.webdriver import Remote

    driver = Remote(command_executor='http://192.168.1.180:4444/wd/hub',

                    desired_capabilities={'platform':'ANY',

                                        'browserName':'safari',

                                        'version':'',

                                        'javascriptEnabled':True

                                        })

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

    driver.find_element_by_id("kw").send_keys("safari")

    driver.find_element_by_id("su") .click()

    driver.quit()

    1.7 HtmlUnit模式

    HtmlUnit 官方网站:http://htmlunit.sourceforge.net/

    HtmlUnit是一款开源的Java页面分析工具,读取页面后,可以有效地使用HtmlUnit分析页面上的内容。项目可以模拟浏览器运行,被誉为Java浏览器的开源实现。这个没有界面的浏览器,其运行速度非常迅速。Selenium Server中同样包含了HtmlUnit驱动。

    首先,在Windows命令提示符下启动Selenium Server

    >java -jar selenium-server-standalone-3.141.0.jar

    baidu2.py

    from selenium.webdriver import Remote

    driver = Remote(command_executor='http://192.168.1.180:4444/wd/hub',

                    desired_capabilities={'platform':'ANY',

                                        'browserName':'htmlunit',

                                        'version':'',

                                        'javascriptEnabled':True

                                        })

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

    driver.find_element_by_id("kw").send_keys("htmlunit")

    driver.find_element_by_id("su") .click()

    driver.get_screenshot_as_file('D:\run_ok.jpg')

    driver.quit()

    1.8 PhantomJS 模式

    PhantomJS 官方网站:http://phantomjs.org/ 

    PhantomJS 是一个拥有JavaScriptAPI的无界面WebKit内核,与HtmlUnit类似。正如我们所知道的,WebKit是Safari和其他一些浏览器使用的布局引擎。因此,PhantomJS是一个浏览器,而且是一个无界面的浏览器。这意味着渲染后的网页实际上绝不会显示。这或许有些不可思议,所以我们可以把它作为一个可编程的浏览器终端。

    在使用PhantomJS之前,需要先下载它。PhantomJS支持Windows、MAC、Linux等平台,我们可以根据自己的环境选择相应的版本进行下载。

    下载完成后解压得到phantomjs.exe程序,将其复制到Python安装目录下,即可通过PhantomJS模式运行测试脚本。

    baidu3.py

    from selenium import webdriver

    from selenium.common.exceptions import WebDriverException

    from time import *

    driver=webdriver.PhantomJS()

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

    try:

        driver.find_element_by_id("kw").send_keys("phantomjs")

        driver.find_element_by_id("su") .click()

        sleep(1)

        driver.get_screenshot_as_file('D:\baidu_ok.jpg')

    except WebDriverException as msg:

        print(msg)

        driver.get_screenshot_as_file('D:\baidu_error.jpg')

    finally:

    driver.quit()

  • 相关阅读:
    Lexical Sign Sequence
    (UPCOJ暑期训练)Tally Counters
    (2019hdu多校第十场) Welcome Party
    (2019hdu多校第十场1003) Valentine's Day
    更新,线段树模板(支持相关基本操作)
    linux(deepin)下Clion的安装及环境配置
    2019牛客第7场——C(Governing sand)
    【数论】数论之旅:N!分解素因子及若干问题
    [二分]Kayaking Trip
    [数论之旅]数学定理
  • 原文地址:https://www.cnblogs.com/linxiu-0925/p/9951709.html
Copyright © 2011-2022 走看看