zoukankan      html  css  js  c++  java
  • Java编程语言下 Selenium 驱动各个浏览器代码

    这里采用的是Selenium3.7版本,首先介绍的是在Windows环境下运行的;

    总结下注意事项:

    1,设置各个浏览器的Driver路径

    System.setProperty("","");

    2,创建一个浏览器对象

    WebDriver driver = new xxx();

     

     

    1. 驱动IE浏览器

    IE浏览器的驱动有32位和64位,两个版本,建议使用32的IEdriver,因为64位的IE driver 跑起来实在太慢了。

    注意IE的保护模式,在各个状态下,全部禁用。如下截图,4个模式下,保护模式全部不勾选

     1 package base;
     2 
     3 import java.util.concurrent.TimeUnit;
     4 import org.openqa.selenium.WebDriver;
     5 import org.openqa.selenium.ie.InternetExplorerDriver;
     6 
     7 public class TestIEDriver {
     8 
     9     public static void main(String args[]) throws InterruptedException {
    10 
    11         System.setProperty("webdriver.ie.driver", ".\Tools\IEDriverServer.exe");
    12         WebDriver driver = new InternetExplorerDriver();
    13         driver.manage().window().maximize();
    14         driver.get("http://www.baidu.com");
    15         String s = driver.getTitle();
    16         System.out.print(s);
    17         driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);
    18         Thread.sleep(1000);
    19         driver.close();
    20 
    21     }
    22 }

     

    2. 驱动Chrome浏览器

     1 package base;
     2 
     3 import java.util.Arrays;
     4 import java.util.concurrent.TimeUnit;
     5 
     6 import org.openqa.selenium.WebDriver;
     7 import org.openqa.selenium.chrome.ChromeDriver;
     8 import org.openqa.selenium.chrome.ChromeOptions;
     9 import org.openqa.selenium.remote.DesiredCapabilities;
    10 
    11 public class TestChromeDriver {
    12 
    13     public static void main(String args[]) throws InterruptedException {
    14 
    15         System.setProperty("webdriver.chrome.driver", ".\Tools\chromedriver.exe");
    16         ChromeOptions options = new ChromeOptions();
    17         DesiredCapabilities capabilities = DesiredCapabilities.chrome();
    18         capabilities.setCapability("chrome.switches", Arrays.asList("--start-maximized"));
    19         options.addArguments("--test-type", "--start-maximized");
    20         WebDriver driver = new ChromeDriver(options);
    21         driver.get("http://www.baidu.com");
    22 
    23         driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);
    24         Thread.sleep(1000);
    25         driver.close();
    26 
    27     }
    28 
    29 }

     

    3. 驱动火狐FireFox浏览器

     1 package base;
     2 
     3 import java.util.concurrent.TimeUnit;
     4 
     5 import org.openqa.selenium.WebDriver;
     6 import org.openqa.selenium.firefox.FirefoxDriver;
     7 
     8 public class TestFireFoxDriver {
     9 
    10     public static void main(String args[]) throws InterruptedException {
    11 
    12         System.setProperty("webdriver.Firefox.driver", ".\Tools\geckodriver.exe");
    13         WebDriver driver = new FirefoxDriver();
    14         driver.manage().window().maximize();
    15         driver.get("http://www.baidu.com");
    16         String s = driver.getTitle();
    17         System.out.print(s);
    18         driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);
    19         Thread.sleep(1000);
    20         driver.close();
    21 
    22     }
    23 
    24 }

     浏览器驱动的下载地址

    http://npm.taobao.org/mirrors/chromedriver/

    http://chromedriver.storage.googleapis.com/index.html

    https://github.com/mumuy/data_location

     

    常见的错误汇总

    1. org.openqa.selenium.remote.SessionNotFoundException: Unexpected error launching Internet Explorer. Browser zoom level was set to 75%. It should be set to 100% (WARNING: The server did not provide any stacktrace information)

    ie浏览器显示百分比,需要调节到100%

     

    2. org.openqa.selenium.ElementNotVisibleException: The point at which the driver is attempting to click on the element was not scrolled into the viewport. (WARNING: The server did not provide any stacktrace information)

    不同设备,窗口大小问题,页面没有显示全,需要向下滚动

     

    3.org.openqa.selenium.SessionNotCreatedException: session not created exception: Chrome version must be >= 66.0.3359.0

    Chrome浏览器驱动版本不匹配的问题,需要查询目前chrome版本,下载匹配的驱动

     

     

    4.No such Element Exception
    元素定位的方式有误,原因:页面源码改动
    原因: 元素还不是可用的状态
    原因: 出现弹窗

     

    ------------------------- A little Progress a day makes you a big success... ----------------------------
  • 相关阅读:
    Python爬虫学习01
    Python学习Day02
    JavaScript学习笔记01
    Python学习Day01
    MarkDown实例代码
    MarkDwon的使用方法
    (转)探究requestDisallowInterceptTouchEvent失效的原因
    JNI字符串转字节数组指针方法
    justfun
    dsad
  • 原文地址:https://www.cnblogs.com/qianjinyan/p/8981624.html
Copyright © 2011-2022 走看看