zoukankan      html  css  js  c++  java
  • selenium 学习(-)

    selenium是一款优秀的WEB自动化测试工具,所以现在采用selenium进行半自动化爬取数据,支持模拟登录淘宝和自动处理滑动验证码。

    1、环境搭建:

    脚本用java编写,选择idea iDE;

    下载selenium用的jar包:

    第一个就是

    我是下载的mac版64位,最新的:selenium-java-4.0.0-alpha-1;

    下载解压,把lib和jar 都放到 java的项目里,引用;

    2、mac下如何安装浏览器驱动chromedriver,这个是驱动chrome浏览器的根本;

    http://chromedriver.storage.googleapis.com/index.html?path=74.0.3729.6/

    找对应自己浏览器版本的 下载;

    下载后放到 /usr/local/bin 中即可;

    接下来就是编写程序了:

    package com.wbh.auto.test;
    
    import org.openqa.selenium.By;
    import org.openqa.selenium.WebDriver;
    import org.openqa.selenium.chrome.ChromeDriver;
    
    import java.util.concurrent.TimeUnit;
    
    public class seleniumTest {
        public static void main(String[] args) {
            System.out.println("Hello World!");
            //System.setProperty("webdriver.chrome.driver","E:\webDriver\chromedriverV2.28.exe");//chromedriver服务地址
            System.setProperty("webdriver.chrome.driver","/usr/local/bin/chromedriver");//chromedriver服务地址
            WebDriver driver =new ChromeDriver(); //新建一个WebDriver 的对象,但是new 的是FirefoxDriver的驱动
            driver.get("http://www.baidu.com");//打开指定的网站
            driver.findElement(By.id("kw")).sendKeys(new  String[] {"hello"});//找到kw元素的id,然后输入hello
            driver.findElement(By.id("su")).click(); //点击按扭
            try {
                /**
                 * WebDriver自带了一个智能等待的方法。
                 dr.manage().timeouts().implicitlyWait(arg0, arg1);
                 Arg0:等待的时间长度,int 类型 ;
                 Arg1:等待时间的单位 TimeUnit.SECONDS 一般用秒作为单位。
                 */
                driver.manage().timeouts().implicitlyWait(3, TimeUnit.SECONDS);
            } catch (Exception e) {
                e.printStackTrace();
            }
            /**
             * dr.quit()和dr.close()都可以退出浏览器,简单的说一下两者的区别:第一个close,
             * 如果打开了多个页面是关不干净的,它只关闭当前的一个页面。第二个quit,
             * 是退出了所有Webdriver所有的窗口,退的非常干净,所以推荐使用quit最为一个case退出的方法。
             */
            //driver.quit();//退出浏览器
        }
    }
    

      

    参考:https://www.cnblogs.com/sincoolvip/p/7451652.html

    做这些的目的就是自动登录阿里妈妈:

    下面是一些有用的摘要:

    http://pub.alimama.com/report/getTbkPaymentDetails.json?spm=a219t.7664554.1998457203.61.197d35d98kzlZB&queryType=1&payStatus=&DownloadID=DOWNLOAD_REPORT_INCOME_NEW&startTime=2018-06-01&endTime=2018-06-07

    阿里妈妈登录框
    https://login.taobao.com/member/login.jhtml?style=mini&from=alimama&redirectURL=http%3A%2F%2Flogin.taobao.com%2Fmember%2Ftaobaoke%2Flogin.htm%3Fis_login%3d1&full_redirect=true&disableQuickLogin=true

    持久登录 https://www.cnblogs.com/doorsky/p/6749723.html

    转链接

    https://pub.alimama.com/common/code/getAuctionCode.json?auctionid=39524112051&adzoneid=73654400&siteid=21940266&scenes=1&t=1489238018764&_tb_token_=qO2Nj1Sk4Rq&pvid=10_122.233.43.77_1118_1489238002348

    {"invalidKey":null,"ok":true,"data":{"clickUrl":"https://s.click.taobao.com/t?e=m%3D2%26s%3DhZstSV7w6I0cQipKwQzePOeEDrYVVa64K7Vc7tFgwiHjf2vlNIV67l79jjKrhVDp18u9BjgaVz4Vn1p9butaQZi9zjCd71l4CRL4DOgBVTfYZeZaqDFzeUQhMBSCX8byskJweKuFSuJldlTk1aM6eDH2w74iWjamomfkDJRs%2BhU%3D&pvid=10_122.233.43.77_1118_1489238002348","couponLink":"","tkCommonRate":"15.00","taoToken":"¥qHcLY2AEMox¥","qrCodeUrl":"//gqrcode.alicdn.com/img?type=hv&text=https%3A%2F%2Fs.click.taobao.com%2Fm6yig9w%3Faf%3D3&h=300&w=300","type":"auction","couponShortLinkUrl":null,"shortLinkUrl":"https://s.click.taobao.com/m6yig9w"},"info":{"ok":true,"message":null}}

    Excel 获取:  http://pub.alimama.com/report/getTbkPaymentDetails.json?spm=a219t.7664554.1998457203.61.197d35d98kzlZB&queryType=1&payStatus=&DownloadID=DOWNLOAD_REPORT_INCOME_NEW&startTime=2018-06-01&endTime=2018-06-07

    www.beicaiduo.com
  • 相关阅读:
    Java动态绑定和静态绑定-多态
    Java方法内联
    Java反射机制及原理
    Jvm-类加载机制
    Zookeeper 源码解析-环境准备
    SpringMvc源码解析
    Java虚拟机的意义
    起跑线
    js动态生成html,onclick事件失效解决方法
    虚拟机能ping通,但是telnet某个端口却不行
  • 原文地址:https://www.cnblogs.com/hoge66/p/10906744.html
Copyright © 2011-2022 走看看