当前位置: 首页 > news >正文

网站建设谈单情景对话html响应式网页设计代码范文

网站建设谈单情景对话,html响应式网页设计代码范文,商城网站做推广有什么好处,wordpress+下载售卖文章目录 Selenium支持语言WebDriver 开始使用chromedriver模拟用户浏览访问模拟点击事件关闭弹窗,选中元素并点击 获取页面文本结语 Selenium Selenium是一个自动化测试工具,可以模拟用户操作web端浏览器的行为,包括点击、输入、选择等。也可…

文章目录

    • Selenium
      • 支持语言
      • WebDriver
    • 开始使用
      • chromedriver
      • 模拟用户浏览访问
      • 模拟点击事件
        • 关闭弹窗,选中元素并点击
      • 获取页面文本
      • 结语

Selenium

 Selenium是一个自动化测试工具,可以模拟用户操作web端浏览器的行为,包括点击、输入、选择等。也可以获取交互界面上的指定元素的内的数据,也就是爬虫。

支持语言

  Selenium支持Java、Python、CSharp、Ruby、JavaScript、Kotlin,对于会java语言的,可以直接使用selenium-java

WebDriver

 Selenium 的核心是 WebDriver,这是一个编写指令集的接口,可以在许多浏览器运行。我们要在浏览器中模拟用户点击就需要一个对应的驱动组件来实现这个功能,WebDriver就是以原生的方式驱动浏览器,就像用户在本地操作浏览器一样。
在这里插入图片描述

开始使用

chromedriver

 上边说了我们要驱动浏览器做一些行为动作就需要一个对应的驱动,目前支持的浏览器有:Firefox、Chrome、Edge、IE、Apple Safari,下面我们使用Chrome浏览器
chromedriver
chromedriver125.0.6422.141稳定版
我使用的浏览器版本是125.0.6422.142,小版本差别影响不大 可以直接使用,下载的WebDriver如果版本差别太大启动的时候会提示浏览器版本不支持。

在这里插入图片描述

模拟用户浏览访问

 以模拟用户浏览页面,不断的滚动页面直到最底部这样一个需求,下面开始编码

<dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId><version>2.6.0</version></dependency><dependency><groupId>org.seleniumhq.selenium</groupId><artifactId>selenium-java</artifactId><version>3.141.59</version></dependency>
</dependencies>
@Component
public class BlogService {private final List<String> UA_LIST = Arrays.asList("Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/104.0.0.0 Safari/537.36","Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/102.0.0.0 Safari/537.36","Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/101.0.0.0 Safari/537.36","Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.0.0 Safari/537.36","Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/98.0.0.0 Safari/537.36","Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/97.0.0.0 Safari/537.36","Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/96.0.0.0 Safari/537.36","Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/95.0.0.0 Safari/537.36","Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/94.0.0.0 Safari/537.36", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/93.0.0.0 Safari/537.36");// 要访问的页面地址private final List<String> URL_LIST = Arrays.asList("https://wiki.mbalib.com/wiki/%E7%BB%B4%E5%9F%BA%E7%99%BE%E7%A7%91");private final AtomicInteger count = new AtomicInteger();public static void main(String[] args) {// websiteTask();}private void websiteTask() {System.setProperty(FirefoxDriver.SystemProperty.BROWSER_LOGFILE, "/dev/null");// driver驱动下载地址:https://googlechromelabs.github.io/chrome-for-testing/System.setProperty("webdriver.chrome.driver", "src\\main\\resources\\125\\chromedriver.exe");   //设置chrome驱动程序的路径System.out.println(System.getProperty("webdriver.chrome.driver"));ChromeOptions opt = new ChromeOptions();//opt.addArguments("-headless");     // 开启无界面模式opt.addArguments("--disable-gpu");  // 禁用gpuopt.addArguments("--user-agent=" + getRandom(UA_LIST));WebDriver driver = new ChromeDriver(opt);   //初始化一个chrome驱动实例,保存到driver中try {// driver.manage().timeouts().implicitlyWait(5, TimeUnit.SECONDS); //隐式等待10秒//最大化窗口driver.manage().window().maximize();  //最大化窗口driver.get(getRandom(URL_LIST));Thread.sleep(1000);  // 等待页面加载xs// 强制转换WebDriver为JavascriptExecutorJavascriptExecutor jsExecutor = (JavascriptExecutor) driver;// 执行JavaScript代码来获取页面的滚动条高度int scrollHeight = Integer.parseInt(jsExecutor.executeScript("return document.documentElement.scrollHeight;").toString());// 可以根据滚动条高度,每次滚动多少px,计算出总共需要滚动多少次,这样就可以滚动到最底部int num = scrollHeight / 400;for (int i = 0; i < num; i++) {int height = (i + 1) * 400;((JavascriptExecutor) driver).executeScript("window.scrollTo({" + "top: " + height + ",behavior: \"smooth\"" + "})");Thread.sleep(1000);  // 每次滚动等待一定时间}} catch (Exception e) {e.printStackTrace();} finally {driver.manage().deleteAllCookies();System.out.println("当前第几次:" + count.incrementAndGet() + " , 打开页面的标题是: " + driver.getTitle());//关闭并退出浏览器driver.quit();}}/*** 随机获取一个地址*/private String getRandom(List<String> list) {// shuffle 打乱顺序Collections.shuffle(list);return list.get(0);}// initialDelay:第一次延迟多长时间后再执行, fixedRate:之后按fixedRate的规则每x秒执行一次@Scheduled(initialDelay = 0, fixedRate = 13000)public void timingTask() {System.out.println("start task........");websiteTask();}
}

运行效果:

selenium-java模拟浏览页面

模拟点击事件

使用这个网站作为示例:测试页面

在这里插入图片描述

由于打开页面有一个提示框,需要先把提示框关闭后才可以对页面元素进行操作,否则会提示元素是不可点击的。
所以我们的步骤是:先打开页面 选中弹窗右上角的关闭图标点击它,然后才能选择页面上要操作的元素。

关闭弹窗,选中元素并点击

 使用xpath语法和浏览器插件可以非常方便的选中要操作的元素,然后在代码中获取到这个元素并调用它的点击事件

@Component
public class BlogService {private final List<String> UA_LIST = Arrays.asList("Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/104.0.0.0 Safari/537.36","Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36","Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/102.0.0.0 Safari/537.36","Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/101.0.0.0 Safari/537.36","Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.0.0 Safari/537.36","Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/98.0.0.0 Safari/537.36","Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/97.0.0.0 Safari/537.36","Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/96.0.0.0 Safari/537.36","Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/95.0.0.0 Safari/537.36","Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/94.0.0.0 Safari/537.36", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/93.0.0.0 Safari/537.36");// 要访问的页面地址private final List<String> URL_LIST = Arrays.asList("https://wiki.mbalib.com/wiki/%E7%BB%B4%E5%9F%BA%E7%99%BE%E7%A7%91");private final AtomicInteger count = new AtomicInteger();public static void main(String[] args) {// websiteTask();}private void websiteTask() {System.setProperty(FirefoxDriver.SystemProperty.BROWSER_LOGFILE, "/dev/null");// driver驱动下载地址:https://googlechromelabs.github.io/chrome-for-testing/System.setProperty("webdriver.chrome.driver", "src\\main\\resources\\125\\chromedriver.exe");   //设置chrome驱动程序的路径System.out.println(System.getProperty("webdriver.chrome.driver"));ChromeOptions opt = new ChromeOptions();//opt.addArguments("-headless");     // 开启无界面模式opt.addArguments("--disable-gpu");  // 禁用gpuopt.addArguments("--user-agent=" + getRandom(UA_LIST));WebDriver driver = new ChromeDriver(opt);   //初始化一个chrome驱动实例,保存到driver中try {// driver.manage().timeouts().implicitlyWait(5, TimeUnit.SECONDS); //隐式等待10秒//最大化窗口driver.manage().window().maximize();  //最大化窗口driver.get(getRandom(URL_LIST));Thread.sleep(1000);  // 等待页面加载xs// 先关闭弹窗String headExpression = "//div[@class=\"bg hid\" and @id=\"vip_popup_img\"]//*[local-name() = \"svg\" and @class=\"head-icon\"]";WebElement headElement = driver.findElement(By.xpath(headExpression));headElement.click();//再操作页面元素String xpathExpression = "//div[@id=\"globalWrapper\"]/div[@id=\"column-content\"]/div[3]/div[@id=\"bodyContent\"]/dl[1]//a[3]";WebElement element = driver.findElement(By.xpath(xpathExpression));// 模拟点击事件element.click();Thread.sleep(10000);} catch (Exception e) {e.printStackTrace();} finally {driver.manage().deleteAllCookies();System.out.println("当前第几次:" + count.incrementAndGet() + " , 打开页面的标题是: " + driver.getTitle());//关闭并退出浏览器driver.quit();}}/*** 随机获取一个地址*/private String getRandom(List<String> list) {// shuffle 打乱顺序Collections.shuffle(list);return list.get(0);}// initialDelay:第一次延迟多长时间后再执行, fixedRate:之后按fixedRate的规则每x秒执行一次@Scheduled(initialDelay = 0, fixedRate = 13000)public void timingTask() {System.out.println("start task........");websiteTask();}
}

运行效果:

selenium-java模拟点击按钮事件

获取页面文本

 如果页面有很多文本文字,要获取(paqu)页面的文字内容也非常的简单
在这里插入图片描述

String xpathExpression = "//div[@id=\"content\"]/div[@id=\"bodyContent\"]//p[1]";
WebElement element = driver.findElement(By.xpath(xpathExpression));
System.out.println(element.getText());

结语

 xpath语法网络上很多资料这里就不做具体介绍了,主要说一下paqu数据的主要步骤,通过xpath可以获取到指定元素的文本内容、模拟元素的点击事件,这样我们就可以实现paqu网页数据,如果页面有分页的话也可以通过编写代码的方式获取到所有数据

http://www.dtcms.com/a/438608.html

相关文章:

  • 设计图片免费素材网站做网站运营需要什么资源
  • gas 优化
  • [创业之路-667]:第四次工业革命(智能革命)未来将创造大量的财富,普通人通过哪些方式参与这些财富的创造与分享?
  • New StarsAI1.0.1
  • 青岛高端网站制作培训机构网站建设要求
  • Spring AI 实战:构建智能对话系统
  • Font Awesome 医疗图标
  • 同时显示文件夹大小的其它“免费”方案
  • Vue--Vue基础(二)
  • 高端网站建设搭建服装定制尺寸量身表
  • linux banner 设计
  • WordPress之家
  • php企业网站开发好学么承德网
  • 从技术史看:Unix 从何而来
  • qt 可以做网站吗优化师简历
  • DreamControl——结合扩散模型和RL的全身人形控制:利用在人体运动数据上训练得到的扩散先验,随后在仿真中引导RL策略完成特定任务
  • Spring Boot 实现邮件发送功能:整合 JavaMailSender 与 FreeMarker 模板
  • 新手理解的电子IO口
  • 网站开发完整项目案例做视频网站视频短片
  • 怎样自己做一个网站想创建一个网站
  • wordpress本站只对会员开放网站建设求职要求
  • PyQt5 QLineEdit案例大全:进阶实战应用指南
  • 技术博客SEO优化指南
  • 【LeetCode热题100(33/100)】排序链表
  • C++坑系列,C++ std::atomic 拷贝构造函数问题分析与解决方案
  • 视频网站做板块栏目asp.net企业网站
  • 如何做超一个电子商务网站做网站有个名字叫小廖
  • Font Awesome Web 应用图标
  • 校企合作下的中医实训室:如何实现 “教学 - 就业” 无缝衔接?
  • Python学习之Day04学习(持久存储与推倒数据)