Java Selenium WebDriver 网页填报

这篇具有很好参考价值的文章主要介绍了Java Selenium WebDriver 网页填报。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一、windows环境安装配置

1.安装chrome浏览器

在“关于chrome”界面,查看浏览器版本号

2.下载chromeDriver

在https://registry.npmmirror.com/binary.html?path=chromedriver/下载对应版本的驱动(如果浏览器版本过新,建议下载最接近的版本)。

将下载好的压缩包解压缩,记住chromedriver.exe文件的路径(路径中不要包含中文),例如:F:\develop\chromedriver_win32\chromedriver.exe

二、linux环境安装配置

1.安装JDK

过程略。

2.安装chrome浏览器
wget https://dl.google.com/linux/direct/google-chrome-stable_current_x86_64.rpm

yum install -y lsb

yum localinstall google-chrome-stable_current_x86_64.rpm

如果出现下图,说明缺少依赖,安装依赖前建议先配置yum源

Java Selenium WebDriver 网页填报,Java,WEB,java,selenium,开发语言

配置yum的163repo源:

下载repo文件

wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.163.com/.help/CentOS7-Base-163.repo

清除原有yum缓存

yum makecache
yum clean all

安装依赖:

yum install liberation-fonts
yum install libvulkan.so.1

再次安装chrome:

yum localinstall google-chrome-stable_current_x86_64.rpm

#查看版本
google-chrome --version
Java Selenium WebDriver 网页填报,Java,WEB,java,selenium,开发语言

3.下载chromeDriver,最新版本的驱动可在https://googlechromelabs.github.io/chrome-for-testing/#stable查看网址

wget https://chromedriver.storage.googleapis.com/114.0.5735.90/chromedriver_linux64.zip

注意版本号,是否在https://registry.npmmirror.com/binary.html?path=chromedriver/中存在,才能下载到对应的driver(如果浏览器版本过新,建议下载最接近的版本)。

unzip chromedriver_linux64.zip
mv chromedriver /usr/local/bin
chromedriver --version

Java Selenium WebDriver 网页填报,Java,WEB,java,selenium,开发语言

记住chromedrive文件的路径(路径中不要包含中文),这里的路径为:/usr/local/bin/chromedriver

三、开发过程

1.引入依赖
<dependency>
    <groupId>org.seleniumhq.selenium</groupId>
    <artifactId>selenium-java</artifactId>
    <version>4.8.3</version>
</dependency>
2.具体代码
2.1 设置驱动
//linux环境驱动路径
//System.setProperty("webdriver.chrome.driver", "/usr/local/bin/chromedriver");
//windows环境驱动路径
System.setProperty("webdriver.chrome.driver", "F://develop//chromedriver_win32//chromedriver.exe");
2.2 基本设置(包含针对反脚本的配置)
ChromeOptions chromeOptions = new ChromeOptions();
//设置为 headless 模式 (必须)
chromeOptions.addArguments("--headless");
chromeOptions.addArguments("--disable-gpu");//谷歌文档提到需要加上这个属性来规避bug
chromeOptions.addArguments("--no-sandbox");// “–no - sandbox”参数是让Chrome在root权限下跑
chromeOptions.addArguments("--disable-dev-shm-usage");
chromeOptions.addArguments("lang=zh_CN.UTF-8");
chromeOptions.addArguments("window-size=1920x1080"); //指定浏览器分辨率
chromeOptions.addArguments("--remote-allow-origins=*");
2.3 针对反脚本的处理
//防止被浏览器识别为脚本
chromeOptions.addArguments("--disable-blink-features=AutomationControlled");
chromeOptions.addArguments("'user-agent=Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/98.0.4758.82 Safari/537.36'");
List excludeSwitches=new ArrayList<String>();
excludeSwitches.add("enable-automation");
chromeOptions.setExperimentalOption("excludeSwitches",excludeSwitches);
chromeOptions.setExperimentalOption("excludeSwitches", Collections.singletonList("enable-automation"));
chromeOptions.setExperimentalOption("useAutomationExtension", false);
2.4 创建浏览器对象
// 创建ChromeDriver对象,其启用之前定义好的配置chromeOptions
WebDriver driver = new ChromeDriver(chromeOptions);
// 访问指定网址
driver.get("https://www.xxxx.com");
2.5 元素选择方式
//单个元素用findElement,多个元素用findElements

//1.根据ID选择元素
WebElement input1= driver.findElement(By.id("input1"));
//2.根据Class选择器
driver.findElements(By.cssSelector(".layui-layer-content select")).get(2);

//其余不再赘述
2.6 Input输入框处理
driver.findElement(By.id("input1")).sendKeys("姓名");
2.7 radio单选处理
//方式1.可直接选择到元素执行click()
//driver.findElement(By.id("选项n")).click();

//方式2.遍历选项文本,文本匹配再选择
List<WebElement> radioList=driver.findElements(By.cssSelector("#div2 .label"));
for (int i=0;i<radioList.size();i++){
    String radioValue=radioList.get(i).getText();
    if(radioValue.equals("其他")){
        radioList.get(i).click();break;
    }
}
2.8 select下拉框处理
Select select4 = new Select(driver.findElements(By.cssSelector(".layui-layer-content select")).get(3));
//根据选项文本做选中处理
select4.selectByVisibleText("第2个选项");
2.9 文件上传处理
driver.findElement(By.id("imginput")).sendKeys("D://workspace//xxxxx//uploadfiles//1674022445180.jpg");
2.10 关闭浏览器
//获取当前网址
driver.getCurrentUrl();
//关闭浏览器
driver.quit();
2.11 其他注意事项

增加延迟:网页检测填报过快可能会被限制,部分操作可能涉及弹框或页面加载,等待页面元素加载好之后再进行操作。文章来源地址https://www.toymoban.com/news/detail-632903.html

到了这里,关于Java Selenium WebDriver 网页填报的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包赞助服务器费用

相关文章

  • 模拟动态加载网页数据Selenium,Puppeteer,WebDriver,Requests-HTML

    模拟动态加载网页数据,你可以使用以下工具: Selenium:Selenium是一个用于Web应用程序测试的工具,它可以模拟用户在浏览器上的操作,包括点击、滚动、填写表单等。因此,它也可以用于爬取那些动态加载内容的网页。Selenium支持多种浏览器,并且提供了多种编程语言的接口

    2024年04月25日
    浏览(11)
  • Selenium + Chrome WebDriver + JS:实现高级爬虫技巧,获取网页响应状态码!

    随着爬虫技术的发展,我们使用requests库能够轻松获取响应状态码,但对于Selenium爬虫,同样可以迎刃而解。通过执行JavaScript脚本,我们可以智能地捕获网页的响应状态码,实现高级的爬虫功能。 在开始之前,确保你已正确安装Selenium和Chrome WebDriver,并配置好环境变量。 以下

    2024年02月07日
    浏览(10)
  • Linux CentOS7安装chrome和chromedriver(WebDriver),用于selenium爬虫(java代码演示)

    Linux CentOS7安装chrome和chromedriver(WebDriver),用于selenium爬虫(java代码演示)

    序号 产品 版本 备注 1 CentOS 7.9 2 chrome 99.0.4844.51 chrome 与 ChromeDriver 的版本必须一致 3 ChromeDriver 99.0.4844.51 chrome 与 ChromeDriver 的版本必须一致 4 selenium 4.12.1 4 JAVA 8 1.1.1. chrome 下载 点击 chrome历史版本下载,按步骤下载 从下载的压缩包解压出rpm,上传 CentOS 系统 1.1.2. chrome 安装 安

    2024年02月20日
    浏览(9)
  • java Selenium 实现简单的网页操作

    官方文档 :入门指南 | Selenium  Selenium是一个用于Web应用测试的工具。Selenium测试直接运行在浏览器中,就像真正的用户在操作一样。 所以使用这个前端测试话工具,可以自动化做很多事情,比如自动化抓取网页内容,俗称网络爬虫,其实搜索引擎本身就是一种网络爬虫技术

    2024年02月14日
    浏览(12)
  • Java学习笔记:爬虫-操作动态网页的Selenium

    Java学习笔记:爬虫-操作动态网页的Selenium

    Why Selenium? 有些网页内容是在浏览器端动态生成的,直接Http获取网页源码是得不到那些元素的。 Selenium可以自动启动一个浏览器、打开网页,可以用程序操作页面元素,也可以获得浏览器当前页面动态加载的页面元素。 比如:百度图片的图片是动态加载的。 用法: 1、下载安

    2024年02月13日
    浏览(15)
  • Selenium WebDriver 开发实战

    WebDriver提供的一系列对象定位方法,获取元素,实现测试用例。现在我们先来写一些调试代码,看看是否能成功驱动浏览器执行操作。 各行代码的作用分别如下: 之前已经安装了Selenium,第1行用于从Selenium库中导入webdriver模块。Selenium库中有common和webdriver两个模块,common模块

    2024年01月17日
    浏览(11)
  • Python+Selenium.webdriver实现WEB端UI自动化测试(实例脚本)

    Python+Selenium.webdriver实现WEB端UI自动化测试(实例脚本)

            本篇记录基于Python+Selenium.webdriver实现WEB端UI自动化测试,其中测试用例使用excel维护。为了在实际项目种的扩展应用,建议学习webdriver的元素定位方法,欢迎在评论区沟通讨论。 该示例选取的是登录页不需要输入验证码校验的基础页面(考虑到现在大部分项目都是

    2023年04月08日
    浏览(20)
  • 网络爬虫开发(五)01-爬虫高级——Selenium简介 & 根据平台选择安装selenium-webdriver包 & Selenium的基本使用

    网络爬虫开发(五)01-爬虫高级——Selenium简介 & 根据平台选择安装selenium-webdriver包 & Selenium的基本使用

    网络爬虫开发(五)01-爬虫高级——Selenium简介 根据平台选择安装selenium-webdriver包 Selenium的基本使用 学习目标: 使用Selenium库爬取前端渲染的网页 反反爬虫技术 官方原文介绍: Selenium automates browsers . That’s it! What you do with that power is entirely up to you. Primarily, it is for automating web

    2024年01月24日
    浏览(11)
  • Java selenium使用出现The path to the driver executable must be set by the webdriver.edge.driver system

    Java selenium使用出现The path to the driver executable must be set by the webdriver.edge.driver system

    2023年3月份Java selenium开始使用出现The path to the driver executable must be set by the webdriver.edge.driver system property; for more; 尝试更换chrome driver,以及根据网上的使用白名单来解决都不生效, 后续发现需要更新Java selenium的使用方式: 以Windows为例需要在之前配置上加上: 1、为driver设置

    2024年01月22日
    浏览(10)
  • Web自动化测试:selenium的使用以及关于driver=webdriver.Firefox()无驱动报错问题

    Web自动化测试:selenium的使用以及关于driver=webdriver.Firefox()无驱动报错问题

    Selenium是一个用于Web应用程序测试的工具。 主流的自动化测试工具有: web自动化测试:selenium、robot framework App端自动化测试:Appium、Monkeyrunner、UIautomation PC客户端(win32)自动化测试:QTP 接口自动化测试:Jmeter、Postman、httpUnit、RESTClient 云测平台:Testin Testbird 性能测试:Jm

    2024年02月09日
    浏览(10)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包