当前位置:   article > 正文

Java 实现掘金每日自动签到领取矿石奖励

Java 实现掘金每日自动签到领取矿石奖励

教程

pom文件引入依赖

  1. <dependency>
  2. <groupId>org.seleniumhq.selenium</groupId>
  3. <artifactId>selenium-server</artifactId>
  4. <version>3.0.1</version>
  5. </dependency>

核心代码示例

  1. import org.openqa.selenium.*;
  2. import org.openqa.selenium.chrome.ChromeDriver;
  3. import org.openqa.selenium.chrome.ChromeOptions;
  4. import java.util.List;
  5. public class JueJinSignIn {
  6. private static String webDriver = "webdriver.chrome.driver";
  7. private static String webDriverPath ="E:\\work_space\\reptile\\src\\main\\resources\\chromedriver\\chromedriver.exe";
  8. private static WebDriver driver = null;
  9. public static void main(String[] args) throws InterruptedException {
  10. System.setProperty(webDriver, webDriverPath);
  11. // ChromeOptions
  12. ChromeOptions chromeOptions = new ChromeOptions();
  13. // 设置后台静默模式启动浏览器
  14. // chromeOptions.addArguments("--headless");
  15. //添加用户cookies数据
  16. chromeOptions.addArguments("--user-data-dir=C:\\Users\\liuya\\AppData\\Local\\Google\\Chrome\\User Data1");
  17. //启动浏览器
  18. driver = new ChromeDriver(chromeOptions);
  19. while (true){
  20. start();
  21. }
  22. }
  23. public static void start() throws InterruptedException {
  24. driver.get("https://juejin.cn/");
  25. Thread.sleep(500);
  26. WebElement signedin = driver.findElement(By.xpath("//button[@class='btn signedin-btn']"));
  27. signedin.sendKeys(Keys.ENTER);
  28. Thread.sleep(500);
  29. WebElement signed = driver.findElement(By.xpath("//button[@class='signedin btn']"));
  30. signed.sendKeys(Keys.ENTER);
  31. Thread.sleep(500);
  32. WebElement btn = driver.findElement(By.xpath("//div[@class='btn-area']/button[@class='btn']"));
  33. btn.sendKeys(Keys.ENTER);
  34. Thread.sleep(500);
  35. WebElement LuckyDrawBtn = driver.findElement(By.id("turntable-item-0"));
  36. JavascriptExecutor jse = (JavascriptExecutor)driver;
  37. jse.executeScript("arguments[0].scrollIntoView(true);", LuckyDrawBtn);
  38. LuckyDrawBtn.click();
  39. Thread.sleep(500);
  40. System.out.println(driver.getPageSource());
  41. List<WebElement> elements = (List<WebElement>) jse.executeScript("return jQuery.find('.lottery_modal byte-modal lottery_modal_lucky v-transfer-dom')");
  42. WebElement reward= elements.get(0).findElement(By.xpath("//div[@class='wrapper']/button[@class='submit']"));
  43. reward.sendKeys(Keys.ENTER);
  44. //等待24小时
  45. Thread.sleep(24*60*60*1000);
  46. }
  47. }

相关知识

org.seleniumhq.selenium 是 Selenium 的 Java 客户端库,用于自动化测试 Web 应用程序。Selenium 是一套用于浏览器自动化的工具集,能够模拟用户在网页上的操作,进行功能测试和界面测试等。通过 org.seleniumhq.selenium 库,开发者可以编写自动化测试脚本来验证 Web 应用程序的正确性和可靠性。下面对 org.seleniumhq.selenium 的主要功能进行详细解释。

  1. WebDriver 接口 WebDriver 接口定义了用于控制浏览器的方法,包括打开、关闭浏览器窗口,导航到指定的 URL,查找元素,执行 JavaScript 等。WebDriver 是执行测试脚本的核心,它提供了与各种浏览器的通信接口,使得开发者能够在不同的浏览器上执行自动化测试。

  2. WebElement 接口 WebElement 接口表示一个网页中的元素,可以是输入框、按钮、链接、下拉列表等。通过 WebElement 接口,可以获取元素的属性、文本内容,进行点击、输入文本、选择选项等操作。可以使用 WebDriver 的 findElement 方法或 findElements 方法来定位元素。

  3. By 类 By 类提供了一系列静态方法,用于定位元素的方式。可以根据元素的 ID、类名、标签名、CSS 选择器、XPath 表达式等方式来定位元素。By 类的方法可以与 WebDriver 的 findElement 方法或 findElements 方法一起使用,用于定位网页中的元素。

  4. Actions 类 Actions 类提供了一系列操作方法,用于在浏览器上执行复杂的用户交互操作,如鼠标移动、键盘操作、拖拽等。通过 Actions 类,可以模拟用户在浏览器上的操作,进行更精细和复杂的自动化测试。

  5. ExpectedConditions 类 ExpectedConditions 类提供了一系列预定义的条件,用于等待某个特定的条件发生。可以用于等待页面加载完成、元素可见、元素可点击等情况。通过 ExpectedConditions 类,可以实现更精确的等待和判断,保证测试脚本在合适的时机继续执行。

  6. WebDriverOptions 接口 WebDriverOptions 接口提供了一系列方法,用于配置和管理 WebDriver 的选项。可以设置超时时间、窗口大小、浏览器的缓存行为等。通过 WebDriverOptions 接口,可以调整自动化测试的环境和设置,以满足不同的需求。

  7. WebDriverEventListener 接口 WebDriverEventListener 接口是一个事件监听器接口,用于监听 WebDriver 的事件,如元素被点击、页面导航等。通过实现该接口,可以在自动化测试过程中捕获和处理各种事件,实现更灵活和定制化的测试流程。

  8. 浏览器驱动 org.seleniumhq.selenium 提供了多个浏览器驱动,如 ChromeDriver、FirefoxDriver、EdgeDriver 等,用于与不同浏览器进行通信。开发者可以根据需要选择适合的浏览器驱动,并下载相应的驱动程序,以便与浏览器进行交互。

总结: org.seleniumhq.selenium 是 Selenium 的 Java 客户端库,用于自动化测试 Web 应用程序。通过 WebDriver 接口、WebElement 接口、By 类、Actions 类、ExpectedConditions 类、WebDriverOptions 接口、WebDriverEventListener 接口等,org.seleniumhq.selenium 提供了丰富的功能和灵活的 API,使得开发者能够编写自动化测试脚本,对 Web 应用程序进行功能测试和界面测试。使用 org.seleniumhq.selenium,可以模拟用户在浏览器上的操作,验证页面的正确性和可靠性。同时,Selenium 还提供了多个浏览器驱动,使得开发者能够与各种常见的浏览器进行通信和测试。总体而言,org.seleniumhq.selenium 是一个强大而广泛应用的自动化测试工具,为开发者提供了方便、可靠的方式来进行 Web 应用程序的自动化测试。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/2023面试高手/article/detail/602456
推荐阅读
相关标签
  

闽ICP备14008679号