Selenium 学习笔记(Java版)(一)永远的HelloWorld

Selenium 学习笔记(Java版)(一)永远的HelloWorld

大家好,又见面了,我是全栈君。

在pom文件中添加selenium依赖

<dependency>
    <groupId>org.seleniumhq.selenium</groupId>
    <artifactId>selenium-java</artifactId>
    <version>3.4.0</version>
</dependency>

本文使用Firefox和Chrome两种最常用的浏览器

代码执行的效果是打开浏览器,进入百度,自动输入hello Selenium然后搜索

(1)使用Firefox

import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.firefox.FirefoxDriver;

public class HelloTest1 {
    public static void main(String[] args) {
        System.setProperty("webdriver.gecko.driver", "D:\\1Program\\Selenium_Driver\\geckodriver.exe");
        System.setProperty("webdriver.firefox.bin", "E:\\Mozilla Firefox\\firefox.exe");
        WebDriver dr =  new FirefoxDriver();
        dr.get("http://www.baidu.com");
        dr.findElement(By.id("kw")).sendKeys("hello Selenium");
        dr.findElement(By.id("su")).click();
        try {
            Thread.sleep(3000);
        } catch (InterruptedException e) {
            e.printStackTrace();
        }
    }
}

本文只介绍前几行,剩余部分在后续文章介绍

System.setProperty("webdriver.gecko.driver", "D:\\1Program\\Selenium_Driver\\geckodriver.exe");
System.setProperty("webdriver.firefox.bin", "E:\\Mozilla Firefox\\firefox.exe");
WebDriver dr = new FirefoxDriver();

使用FirefoxDriver时,程序会去默认路径寻找firefox浏览器,大部分人可能都不是默认的,所以需要通过webdriver.firefox.bin设置系统变量,这时候直接运行会报如下错误

Exception in thread "main" java.lang.IllegalStateException: The path to the driver executable must be set by the webdriver.gecko.driver system property; for more information, see https://github.com/mozilla/geckodriver. The latest version can be downloaded from https://github.com/mozilla/geckodriver/releases
	at com.google.common.base.Preconditions.checkState(Preconditions.java:738)
	at org.openqa.selenium.remote.service.DriverService.findExecutable(DriverService.java:124)
	at org.openqa.selenium.firefox.GeckoDriverService.access$100(GeckoDriverService.java:41)
	at org.openqa.selenium.firefox.GeckoDriverService$Builder.findDefaultExecutable(GeckoDriverService.java:115)
	at org.openqa.selenium.remote.service.DriverService$Builder.build(DriverService.java:330)
	at org.openqa.selenium.firefox.FirefoxDriver.toExecutor(FirefoxDriver.java:207)
	at org.openqa.selenium.firefox.FirefoxDriver.<init>(FirefoxDriver.java:108)
	at org.openqa.selenium.firefox.FirefoxDriver.<init>(FirefoxDriver.java:104)
	at com.mysite.selenium.HelloTest1.main(HelloTest1.java:11)

于是去下载geckodriver,然后设置路径到webdriver.gecko.driver即可(PS:看网上的说法,似乎设置到环境变量也可以,各位可以试一下)

(2)使用Chrome

import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;

public class HelloTest {
    public static void main(String[] args) {
        System.setProperty("webdriver.chrome.driver", "D:\\1Program\\Chrome_Driver\\chromedriver.exe");

        WebDriver driver = new ChromeDriver();
        driver.get("http://www.baidu.com");
        driver.findElement(By.id("kw")).sendKeys("hello Selenium");
        driver.findElement(By.id("su")).click();
        try {
            Thread.sleep(3000);
        } catch (InterruptedException e) {
            e.printStackTrace();
        }
        //driver.quit();
    }
}

Chrome浏览器需要单独下载driver,地址在这里(需要梯子),然后设置系统变量webdriver.chrome.driver即可

 

转载于:https://my.oschina.net/icebergxty/blog/913825

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/108444.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 数据库中select 查询详解[通俗易懂]

    数据库中select 查询详解[通俗易懂]数据查询操作介绍在数据库操作中,使用频率最多的是查询操作。查询数据时,根据不同的需求,条件对数据库中的数据进行查询,并返回结果单表查询数据查询数据库使用 select 命令。这个命令相对比较复杂。可变化样式较多,这里分功能依次讲解。 查询数据表中所有数据语法:select*from表名 select*fromt_student; …

    2022年6月9日
    32
  • 深度学习优化策略—权重、权重初始化与权重衰减「建议收藏」

    深度学习优化策略—权重、权重初始化与权重衰减「建议收藏」Nobiasdecay:一般来说,权重衰减会用到网络中所有需要学习的参数上面。然而仅仅将权重衰减用到卷积层和全连接层,不对biases,BN层的\gamma,\beta做权重衰减,效果会更好。BagofTricksforImageClassificationwithConvolutionalNeuralNetworks…

    2022年10月5日
    2
  • torch.meshgrid()函数解析

    torch.meshgrid()函数解析torch.meshgrid()函数解析torch.meshgrid()的功能是生成网格,可以用于生成坐标。函数输入两个数据类型相同的一维张量,两个输出张量的行数为第一个输入张量的元素个数,列数为第二个输入张量的元素个数,当两个输入张量数据类型不同或维度不是一维时会报错。其中第一个输出张量填充第一个输入张量中的元素,各行元素相同;第二个输出张量填充第二个输入张量中的元素各列元素相同。#【1】importtorcha=torch.tensor([1,…

    2022年6月5日
    130
  • 服务器配置[通俗易懂]

    服务器配置[通俗易懂]Nginx配置文件的整体结构从图中可以看出主要包含以下几大部分内容:1.全局块该部分配置主要影响Nginx全局,通常包括下面几个部分:配置运行Nginx服务器用户(组)workerpro

    2022年8月4日
    2
  • sql 聚合函数嵌套使用[通俗易懂]

    sql 聚合函数嵌套使用[通俗易懂]sql聚合函数嵌套使用

    2022年6月21日
    46
  • 一致性Hash算法以及java实现「建议收藏」

    一致性Hash算法以及java实现「建议收藏」目前我们很多时候都是在做分布式系统,但是我们需把客户端的请求均匀的分布到N个服务器中,一般我们可以考虑通过Object的HashCodeHash%N,通过取余,将客户端的请求分布到不同的的服务端。但是在分布式集群中我们通常需要添加或删除服务器,所以通过取余是不行的。一致性Hash就是为了解决这个问题。  ConsistentHashing一致性Hash的原理  1、环型Hash空间…

    2022年10月5日
    3

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号