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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • DirectoryExists

    DirectoryExists判断文件夹是否存在关键点GetFileAttributesTheGetFileAttributesfunctionretrievesattributesforaspecifiedfileordirec

    2022年7月2日
    22
  • 空间相关分析(二) 全局莫兰指数的理解与计算

    空间相关分析(二) 全局莫兰指数的理解与计算在空间相关分析中

    2022年6月25日
    205
  • pycharm 2021.5.2激活码【在线注册码/序列号/破解码】[通俗易懂]

    pycharm 2021.5.2激活码【在线注册码/序列号/破解码】,https://javaforall.net/100143.html。详细ieda激活码不妨到全栈程序员必看教程网一起来了解一下吧!

    2022年3月20日
    63
  • AcWing 2060. 奶牛选美(双端队列BFS)

    AcWing 2060. 奶牛选美(双端队列BFS)题目描述 听说最近两斑点的奶牛最受欢迎 约翰立即购进了一批两斑点牛 不幸的是 时尚潮流往往变化很快 当前最受欢迎的牛变成了一斑点牛 约翰希望通过给每头奶牛涂色 使得它们身上的两个斑点能够合为一个斑点 让它们能够更加时尚 牛皮可用一个 N MN MN M 的字符矩阵来表示 如下所示 XXXX XXX XXXX XX XXXX XXX XXXXX XXX 其中 X 表示斑点

    2025年11月6日
    2
  • kafka的使用场景举例_kafka一般用来做什么

    kafka的使用场景举例_kafka一般用来做什么关于消息队列的使用一、消息队列概述消息队列中间件是分布式系统中重要的组件,主要解决应用解耦,异步消息,流量削锋等问题,实现高性能,高可用,可伸缩和最终一致性架构。目前使用较多的消息队列有ActiveMQ,RabbitMQ,ZeroMQ,Kafka,MetaMQ,RocketMQ二、消息队列应用场景以下介绍消息队列在实际应用中常用的使用场景。异步处理,应用解耦,流量削锋和消息通讯四个场景。2.1异步…

    2022年10月15日
    3
  • keypad driver

    keypad driver键盘是6×6矩阵式,在网上下了对应的PATCH,下载地址是https://patchwork.kernel.org/patch/71857/ 这个补丁会创建两个文件arch/arm/plat-mxc/include/mach/mxc_keypad.h//mxc_keypad_platform_data键盘平台设备的结构体/drivers/input/keyboard/mxc_

    2022年4月27日
    45

发表回复

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

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